Opened 4 years ago

Closed 4 years ago

#15584 closed bug (invalid)

Build (compilation; C source syntax error) error under Linux

Reported by: mounty Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: - General Version: R1/Development
Keywords: C++ syntax build error Cc:
Blocked By: Blocking:
Platform: x86

Description

Attempting to build hrev53658 on Gentoo Linux with gcc-9.2.0:

$ ~/haiku/buildtools/jam/bin.linuxx86/jam -q @nightly-disk
[...]
CreateContainerMakeDirectoriesScript1 objects/haiku/x86_gcc2/packaging/packages_build/regular/hpkg_-haiku_x86.hpkg/scripts/haiku.package-make-dirs 
InitScript1 objects/haiku/x86_gcc2/packaging/packages_build/regular/hpkg_-haiku_x86.hpkg/scripts/haiku.package-copy-files 
C++ objects/haiku/x86/release/system/libroot/os/find_directory.o 
In file included from build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/bits/move.h:55:0,
                 from build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/bits/nested_exception.h:40,
                 from build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/exception:144,
                 from build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/new:40,
                 from ../../../../home/mounty/haiku/source/headers/os/support/StackOrHeapArray.h:9,
                 from ../../../../home/mounty/haiku/source/src/system/libroot/os/find_directory.cpp:22:
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/type_traits:921:32: error: there are no arguments to '__is_constructible' that depend on a template parameter, so a declaration of '__is_constructible' must be available [-fpermissive]
       : public __bool_constant<__is_constructible(_Tp, _Args...)>
                                ^~~~~~~~~~~~~~~~~~
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/type_traits:921:32: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/type_traits:921:65: error: template argument 1 is invalid
       : public __bool_constant<__is_constructible(_Tp, _Args...)>
                                                                 ^
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/type_traits:1049:32: error: there are no arguments to '__is_assignable' that depend on a template parameter, so a declaration of '__is_assignable' must be available [-fpermissive]
       : public __bool_constant<__is_assignable(_Tp, _Up)>
                                ^~~~~~~~~~~~~~~
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/type_traits:1049:57: error: template argument 1 is invalid
       : public __bool_constant<__is_assignable(_Tp, _Up)>
                                                         ^
In file included from build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/algorithm:60:0,
                 from ../../../../home/mounty/haiku/source/src/system/libroot/os/PathBuffer.h:11,
                 from ../../../../home/mounty/haiku/source/src/system/libroot/os/find_directory.cpp:40:
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:307:35: error: there are no arguments to '__integer_pack' that depend on a template parameter, so a declaration of '__integer_pack' must be available [-fpermissive]
       using __type = _Index_tuple<__integer_pack(_Num)...>;
                                   ^~~~~~~~~~~~~~
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:307:55: error: expansion pattern '__integer_pack(_Num)' contains no argument packs
       using __type = _Index_tuple<__integer_pack(_Num)...>;
                                                       ^~~
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:307:58: error: template argument 1 is invalid
       using __type = _Index_tuple<__integer_pack(_Num)...>;
                                                          ^
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:329:51: error: expansion pattern '__integer_pack(_Num)' contains no argument packs
       = integer_sequence<_Tp, __integer_pack(_Num)...>;
                                                   ^~~
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:329:54: error: template argument 2 is invalid
       = integer_sequence<_Tp, __integer_pack(_Num)...>;
                                                      ^
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:340:33: error: 'make_integer_sequence' does not name a type; did you mean 'integer_sequence'?
     using make_index_sequence = make_integer_sequence<size_t, _Num>;
                                 ^~~~~~~~~~~~~~~~~~~~~
                                 integer_sequence
build_packages/gcc_x86_syslibs_devel-8.3.0_2019_05_24-7-x86_gcc2/develop/headers/x86/c++/utility:344:32: error: 'make_index_sequence' does not name a type; did you mean 'index_sequence'?
     using index_sequence_for = make_index_sequence<sizeof...(_Types)>;
                                ^~~~~~~~~~~~~~~~~~~
                                index_sequence
[...]

Attachments (1)

W-log.txt.gz (446.0 KB ) - added by mounty 4 years ago.
Complete log of the build steps with all output

Download all attachments as: .zip

Change History (10)

comment:1 by waddlesplash, 4 years ago

Resolution: invalid
Status: newclosed

You cannot use GCC 9 with GCC 8 syslibs headers, that's not supported.

comment:2 by mounty, 4 years ago

On my system, gcc-config -l shows i686-pc-linux-gnu-9.2.0

I then rm -r attributes/ build/ etc. to start a fresh build.

configure with: /home/mounty/haiku/source/configure --build-cross-tools x86_gcc2 /home/mounty/haiku/buildtools --build-cross-tools x86 --use-gcc-pipe --no-full-xattr --no-xattr

build with: /home/mounty/haiku/buildtools/jam/bin.linuxx86/jam -q @nightly-disk

result: same error as in the bug report. Why is Haiku building with 8.3.0 when as far as I can tell it should be a clean 9.2.0 build?

Last edited 4 years ago by mounty (previous) (diff)

comment:3 by mounty, 4 years ago

Resolution: invalid
Status: closedreopened

comment:4 by pulkomandy, 4 years ago

@waddlesplash if a configuration is not supported, it should fail with a clear message during ./configure, not some strange build error down the line.

@mounty: when building haiku, the host compiler is used only to build a few tools to run on the host system (Linux in your case). We build our own compiler (currently gcc 8.3.0) to build the OS itself and all things that run in it. This is because your gcc9 is a Linux compiler and cannot be used to make Haiku executables.

As far as I can see in the build log, the error happens while running our gcc 8.3 with our syslib 8.3 headers, so gcc9 is not used at this point. So this should be investigated further.

comment:5 by waddlesplash, 4 years ago

Well, I assumed monty meant that they had changed out the cross compiler for gcc9, which configure has no particular reason to prevent.

Try deleting the build_packages directory, and see if the error changes.

by mounty, 4 years ago

Attachment: W-log.txt.gz added

Complete log of the build steps with all output

comment:6 by mounty, 4 years ago

I didn't change the cross-compiler. I quoted the version of my Linux GCC because I thought it was relevant. I didn't realise that the Haiku configure process built its own compiler.

Also, I did delete build_packages. As stated above, I ran rm -r attributes/ build/ etc. to start a fresh build. All I had in the directory at that point was

  • UserBuildConfig
  • a symlink to a shared download/ because I build Haiku for several machines but want to avoid downloading .hpkgs separately for each.

I've attached a compressed log of the entire sequence, with output.

comment:7 by waddlesplash, 4 years ago

I wonder: the "@nightly-disk" profile is less-used, and perhaps it somehow has become broken. Does "@nightly-anyboot" or "@minimum-raw" work?

comment:8 by mounty, 4 years ago

Oh dear, extreme embarrassment here as I realised that although I've been git pulling the Haiku source frequently, I hadn't updated the buildtools for ... too long. After doing so just now, I can once more build Haiku from source.

Please accept my apology and close this ticket.

comment:9 by pulkomandy, 4 years ago

Resolution: invalid
Status: reopenedclosed
Note: See TracTickets for help on using tickets.