Ticket #4091 (new bug)

Opened 8 months ago

Last modified 3 weeks ago

r31522 build breakage on parallel jam

Reported by: meianoite Owned by: bonefish
Priority: low Milestone: Unscheduled
Component: Build System Version: R1/Development
Keywords: Cc:
Blocked By: Platform: All
Blocking: #4579

Description

Didn't paste stuff between triple brackets because Trac would generate an enormous single line on the GCC output. Sorry for the accidental wikiformatting, like underlined DEFINE words.

Generated dir was clean except for the build, downloads and cross-tools dirs.

@all target is verbatim Ingo's suggestion on the mailing list for a target that doesn't produce an image.


jam -aqj8 @all


In file included from /usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:41:[[BR]] /usr/home/andre/devel/Haiku/trunk/src/bin/bash/include/y.tab.h:1: parse.h: No such file or directory
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c: In function `make_command_string_internal':
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:234: `AND_AND' undeclared (first use in this function)
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:234: (Each undeclared identifier is reported only once
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:234: for each function it appears in.)
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:240: `OR_OR' undeclared (first use in this function)

/usr/home/andre/devel/Haiku/trunk/generated.gcc2/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -nostdinc -DHAVE_CONFIG_H -DPROGRAM='"bash"' -DSHELL -DCONF_MACHTYPE='"i586-pc-haiku"' -DCONF_HOSTTYPE='"i586"' -DCONF_VENDOR='"pc"' -DCONF_OSTYPE='"beos"' -c "/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c" -DHAIKU -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -DINTEL -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -I/usr/home/andre/devel/Haiku/trunk/build/user_config_headers -I/usr/home/andre/devel/Haiku/trunk/build/config_headers -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/common/bin/bash -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/freebsd/x86/common/bin/bash -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash -I- -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/include -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/lib -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash -I/usr/home/andre/devel/Haiku/trunk/headers/cpp -I/usr/home/andre/devel/Haiku/trunk/headers/build/gcc-2.95.3 -I/usr/home/andre/devel/Haiku/trunk/headers -I/usr/home/andre/devel/Haiku/trunk/headers/posix -I/usr/home/andre/devel/Haiku/trunk/headers/gnu -I/usr/home/andre/devel/Haiku/trunk/headers/glibc -I/usr/home/andre/devel/Haiku/trunk/headers/os -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/file_system -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/graphics -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/input_server -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/registrar -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/screen_saver -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/tracker -I/usr/home/andre/devel/Haiku/trunk/headers/os/app -I/usr/home/andre/devel/Haiku/trunk/headers/os/device -I/usr/home/andre/devel/Haiku/trunk/headers/os/drivers -I/usr/home/andre/devel/Haiku/trunk/headers/os/game -I/usr/home/andre/devel/Haiku/trunk/headers/os/interface -I/usr/home/andre/devel/Haiku/trunk/headers/os/kernel -I/usr/home/andre/devel/Haiku/trunk/headers/os/media -I/usr/home/andre/devel/Haiku/trunk/headers/os/mail -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi2 -I/usr/home/andre/devel/Haiku/trunk/headers/os/net -I/usr/home/andre/devel/Haiku/trunk/headers/os/opengl -I/usr/home/andre/devel/Haiku/trunk/headers/os/storage -I/usr/home/andre/devel/Haiku/trunk/headers/os/support -I/usr/home/andre/devel/Haiku/trunk/headers/os/translation -I/usr/home/andre/devel/Haiku/trunk/headers/private/. -o "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/print_cmd.o" ;

...failed Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/print_cmd.o ...


MkBuiltinsExt1 /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/builtext.h /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/builtins.c
Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o
i586-pc-haiku-gcc: /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/builtins.c: No such file or directory
i586-pc-haiku-gcc: No input files

/usr/home/andre/devel/Haiku/trunk/generated.gcc2/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -nostdinc -DHAVE_CONFIG_H -DSHELL -c "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/builtins.c" -DHAIKU -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -DINTEL -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -I/usr/home/andre/devel/Haiku/trunk/build/user_config_headers -I/usr/home/andre/devel/Haiku/trunk/build/config_headers -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/common/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/freebsd/x86/common/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins -I- -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/.. -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/../include -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/../lib -I/usr/home/andre/devel/Haiku/trunk/headers/cpp -I/usr/home/andre/devel/Haiku/trunk/headers/build/gcc-2.95.3 -I/usr/home/andre/devel/Haiku/trunk/headers -I/usr/home/andre/devel/Haiku/trunk/headers/posix -I/usr/home/andre/devel/Haiku/trunk/headers/gnu -I/usr/home/andre/devel/Haiku/trunk/headers/glibc -I/usr/home/andre/devel/Haiku/trunk/headers/os -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/file_system -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/graphics -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/input_server -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/registrar -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/screen_saver -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/tracker -I/usr/home/andre/devel/Haiku/trunk/headers/os/app -I/usr/home/andre/devel/Haiku/trunk/headers/os/device -I/usr/home/andre/devel/Haiku/trunk/headers/os/drivers -I/usr/home/andre/devel/Haiku/trunk/headers/os/game -I/usr/home/andre/devel/Haiku/trunk/headers/os/interface -I/usr/home/andre/devel/Haiku/trunk/headers/os/kernel -I/usr/home/andre/devel/Haiku/trunk/headers/os/media -I/usr/home/andre/devel/Haiku/trunk/headers/os/mail -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi2 -I/usr/home/andre/devel/Haiku/trunk/headers/os/net -I/usr/home/andre/devel/Haiku/trunk/headers/os/opengl -I/usr/home/andre/devel/Haiku/trunk/headers/os/storage -I/usr/home/andre/devel/Haiku/trunk/headers/os/support -I/usr/home/andre/devel/Haiku/trunk/headers/os/translation -I/usr/home/andre/devel/Haiku/trunk/headers/private/. -o "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o" ;

...failed Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o ...


Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/exit.o
MkBuiltinsComp1 /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/help.c
MkBuiltinsComp1 /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/history.c
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/exit.def: In function `exit_or_logout':
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/exit.def:99: `jobs_builtin' undeclared (first use in this function)
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/exit.def:99: (Each undeclared identifier is reported only once
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/exit.def:99: for each function it appears in.)
Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/hash.o
Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/help.o
Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/history.o

/usr/home/andre/devel/Haiku/trunk/generated.gcc2/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -nostdinc -DHAVE_CONFIG_H -DSHELL -c "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/exit.c" -DHAIKU -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -DINTEL -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -I/usr/home/andre/devel/Haiku/trunk/build/user_config_headers -I/usr/home/andre/devel/Haiku/trunk/build/config_headers -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/common/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/freebsd/x86/common/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins -I- -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/.. -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/../include -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/../lib -I/usr/home/andre/devel/Haiku/trunk/headers/cpp -I/usr/home/andre/devel/Haiku/trunk/headers/build/gcc-2.95.3 -I/usr/home/andre/devel/Haiku/trunk/headers -I/usr/home/andre/devel/Haiku/trunk/headers/posix -I/usr/home/andre/devel/Haiku/trunk/headers/gnu -I/usr/home/andre/devel/Haiku/trunk/headers/glibc -I/usr/home/andre/devel/Haiku/trunk/headers/os -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/file_system -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/graphics -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/input_server -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/registrar -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/screen_saver -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/tracker -I/usr/home/andre/devel/Haiku/trunk/headers/os/app -I/usr/home/andre/devel/Haiku/trunk/headers/os/device -I/usr/home/andre/devel/Haiku/trunk/headers/os/drivers -I/usr/home/andre/devel/Haiku/trunk/headers/os/game -I/usr/home/andre/devel/Haiku/trunk/headers/os/interface -I/usr/home/andre/devel/Haiku/trunk/headers/os/kernel -I/usr/home/andre/devel/Haiku/trunk/headers/os/media -I/usr/home/andre/devel/Haiku/trunk/headers/os/mail -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi2 -I/usr/home/andre/devel/Haiku/trunk/headers/os/net -I/usr/home/andre/devel/Haiku/trunk/headers/os/opengl -I/usr/home/andre/devel/Haiku/trunk/headers/os/storage -I/usr/home/andre/devel/Haiku/trunk/headers/os/support -I/usr/home/andre/devel/Haiku/trunk/headers/os/translation -I/usr/home/andre/devel/Haiku/trunk/headers/private/. -o "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/exit.o" ;

...failed Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/exit.o ...


...failed updating 3 target(s)...
...skipped 2 target(s)...
...updated 9442 target(s)...

Attachments

bash.patch Download (0.6 KB) - added by mmadia 3 weeks ago.
possible -jN fix for bash

Change History

follow-up: ↓ 2   Changed 8 months ago by bonefish

The first and the third problem are fixed in r31523 respectively r31524. The second one is a bit weird, since jam seems to know that builtins.o depends on builtins.c. "jam -dd" says so at least:

Depends "<src!bin!bash!builtins>builtins.o" : "<src!bin!bash!builtins>builtins.c" ;

So it shouldn't try to make builtins.o before builtins.c has been made.

Anyway, I've built bash a few times with "-j8" and didn't get anymore errors. Please give the new revision a whirl.

in reply to: ↑ 1 ; follow-up: ↓ 3   Changed 8 months ago by meianoite

Replying to bonefish:

Anyway, I've built bash a few times with "-j8" and didn't get anymore errors. Please give the new revision a whirl.

Building right now.

Considering that all the build system bugs I reported lately are Bash-related and also related to remaking its own build system to use jam, isn't it more trouble than it's worth? I mean, can't we, for imported software, simply invoke make in a subshell or something?

in reply to: ↑ 2 ; follow-up: ↓ 4   Changed 8 months ago by bonefish

Replying to meianoite:

Considering that all the build system bugs I reported lately are Bash-related and also related to remaking its own build system to use jam, isn't it more trouble than it's worth? I mean, can't we, for imported software, simply invoke make in a subshell or something?

The build system of most imported software is autotools + make based. This is something I *so* don't want to integrate in our build system.

in reply to: ↑ 3 ; follow-up: ↓ 5   Changed 8 months ago by meianoite

Replying to bonefish:

The build system of most imported software is autotools + make based. This is something I *so* don't want to integrate in our build system.

Well, such pain is yours to feel :)

r31524:

In file included from /usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:41:
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/include/y.tab.h:1: parse.h: No such file or directory
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c: In function `make_command_string_internal':
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:234: `AND_AND' undeclared (first use in this function)
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:234: (Each undeclared identifier is reported only once
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:234: for each function it appears in.)
/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c:240: `OR_OR' undeclared (first use in this function)
As /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/kits/opengl/mesa/x86_xform4.o 
As /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/kits/opengl/mesa/x86_cliptest.o 
As /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/kits/opengl/mesa/mmx_blend.o 

/usr/home/andre/devel/Haiku/trunk/generated.gcc2/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -nostdinc -DHAVE_CONFIG_H -DPROGRAM='"bash"' -DSHELL -DCONF_MACHTYPE='"i586-pc-haiku"' -DCONF_HOSTTYPE='"i586"' -DCONF_VENDOR='"pc"' -DCONF_OSTYPE='"beos"' -c "/usr/home/andre/devel/Haiku/trunk/src/bin/bash/print_cmd.c" -D__HAIKU__ -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -D__INTEL__ -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -I/usr/home/andre/devel/Haiku/trunk/build/user_config_headers -I/usr/home/andre/devel/Haiku/trunk/build/config_headers -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/common/bin/bash -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/freebsd/x86/common/bin/bash -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash -I- -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/include -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/lib -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash -I/usr/home/andre/devel/Haiku/trunk/headers/cpp -I/usr/home/andre/devel/Haiku/trunk/headers/build/gcc-2.95.3 -I/usr/home/andre/devel/Haiku/trunk/headers -I/usr/home/andre/devel/Haiku/trunk/headers/posix -I/usr/home/andre/devel/Haiku/trunk/headers/gnu -I/usr/home/andre/devel/Haiku/trunk/headers/glibc -I/usr/home/andre/devel/Haiku/trunk/headers/os -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/file_system -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/graphics -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/input_server -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/registrar -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/screen_saver -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/tracker -I/usr/home/andre/devel/Haiku/trunk/headers/os/app -I/usr/home/andre/devel/Haiku/trunk/headers/os/device -I/usr/home/andre/devel/Haiku/trunk/headers/os/drivers -I/usr/home/andre/devel/Haiku/trunk/headers/os/game -I/usr/home/andre/devel/Haiku/trunk/headers/os/interface -I/usr/home/andre/devel/Haiku/trunk/headers/os/kernel -I/usr/home/andre/devel/Haiku/trunk/headers/os/media -I/usr/home/andre/devel/Haiku/trunk/headers/os/mail -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi2 -I/usr/home/andre/devel/Haiku/trunk/headers/os/net -I/usr/home/andre/devel/Haiku/trunk/headers/os/opengl -I/usr/home/andre/devel/Haiku/trunk/headers/os/storage -I/usr/home/andre/devel/Haiku/trunk/headers/os/support -I/usr/home/andre/devel/Haiku/trunk/headers/os/translation -I/usr/home/andre/devel/Haiku/trunk/headers/private/. -o "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/print_cmd.o" ;

...failed Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/print_cmd.o ...

Our friend print_cmd again, and again failing on y.tab.h, now for a different reason. Lovely insertion of Mesa being assembled because of the parallel build :)


Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o 
i586-pc-haiku-gcc: /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/builtins.c: No such file or directory
i586-pc-haiku-gcc: No input files

/usr/home/andre/devel/Haiku/trunk/generated.gcc2/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -nostdinc -DHAVE_CONFIG_H -DSHELL -c "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins/builtins.c" -D__HAIKU__ -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -D__INTEL__ -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -I/usr/home/andre/devel/Haiku/trunk/build/user_config_headers -I/usr/home/andre/devel/Haiku/trunk/build/config_headers -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/common/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/freebsd/x86/common/bin/bash/builtins -I/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/builtins -I- -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/.. -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/../include -I/usr/home/andre/devel/Haiku/trunk/src/bin/bash/builtins/../lib -I/usr/home/andre/devel/Haiku/trunk/headers/cpp -I/usr/home/andre/devel/Haiku/trunk/headers/build/gcc-2.95.3 -I/usr/home/andre/devel/Haiku/trunk/headers -I/usr/home/andre/devel/Haiku/trunk/headers/posix -I/usr/home/andre/devel/Haiku/trunk/headers/gnu -I/usr/home/andre/devel/Haiku/trunk/headers/glibc -I/usr/home/andre/devel/Haiku/trunk/headers/os -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/file_system -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/graphics -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/input_server -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/registrar -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/screen_saver -I/usr/home/andre/devel/Haiku/trunk/headers/os/add-ons/tracker -I/usr/home/andre/devel/Haiku/trunk/headers/os/app -I/usr/home/andre/devel/Haiku/trunk/headers/os/device -I/usr/home/andre/devel/Haiku/trunk/headers/os/drivers -I/usr/home/andre/devel/Haiku/trunk/headers/os/game -I/usr/home/andre/devel/Haiku/trunk/headers/os/interface -I/usr/home/andre/devel/Haiku/trunk/headers/os/kernel -I/usr/home/andre/devel/Haiku/trunk/headers/os/media -I/usr/home/andre/devel/Haiku/trunk/headers/os/mail -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi -I/usr/home/andre/devel/Haiku/trunk/headers/os/midi2 -I/usr/home/andre/devel/Haiku/trunk/headers/os/net -I/usr/home/andre/devel/Haiku/trunk/headers/os/opengl -I/usr/home/andre/devel/Haiku/trunk/headers/os/storage -I/usr/home/andre/devel/Haiku/trunk/headers/os/support -I/usr/home/andre/devel/Haiku/trunk/headers/os/translation -I/usr/home/andre/devel/Haiku/trunk/headers/private/. -o "/usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o" ;

...failed Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o ...

Well, builtins.c again.

in reply to: ↑ 4 ; follow-up: ↓ 6   Changed 8 months ago by meianoite

Replying to meianoite:

Our friend print_cmd again, and again failing on y.tab.h, now for a different reason.

Same reason, actually! O_O

in reply to: ↑ 5   Changed 8 months ago by meianoite

Replying to meianoite:

Same reason, actually! O_O

For good measure:

> svn info
Path: .
URL: http://svn.berlios.de/svnroot/repos/haiku/haiku/trunk
Repository Root: http://svn.berlios.de/svnroot/repos/haiku
Repository UUID: a95241bf-73f2-0310-859d-f6bbb57e9c96
Revision: 31524
Node Kind: directory
Schedule: normal
Last Changed Author: bonefish
Last Changed Rev: 31524
Last Changed Date: 2009-07-11 17:27:44 -0300 (Sat, 11 Jul 2009)

follow-up: ↓ 8   Changed 8 months ago by bonefish

The dependencies look OK for both cases, so I'd consider this a jam bug. Under Haiku I couldn't reproduce it (two cores only, though). Am I assuming correctly that your build platform is FreeBSD? Would be interesting, if this can be reproduced on Linux, too.

in reply to: ↑ 7 ; follow-up: ↓ 9   Changed 8 months ago by meianoite

Replying to bonefish:

The dependencies look OK for both cases, so I'd consider this a jam bug.

Some revisions ago I couldn't trigger this either, remember? Those are always timing-dependent, but I manage to reproduce this quite easily now. I just have to call a parallel jam and do a "make -j8 index" on /usr/ports to generate a lot of disk activity. But I don't think this is a jam bug at all. I don't really understand how Jam generates its dependency trees, but after some investigation I found that parse.h is generated by the Yacc1 rule being applied to parse.y:

Yacc1 /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/parse.c /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/parse.h

which expands to:

bison -d -o /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/parse.c /usr/home/andre/devel/Haiku/trunk/src/bin/bash/parse.y
[ -f /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/parse.c.h ] && mv /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/parse.c.h /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/common/bin/bash/parse.h || true

but nowhere is parse.h declared dependent on parse.y. So it's very probable Jam simply launched the shell that compiles print_cmd.c independently. Does this make sense to you?

Replying to bonefish:

Under Haiku I couldn't reproduce it (two cores only, though). Am I assuming correctly that your build platform is FreeBSD? Would be interesting, if this can be reproduced on Linux, too.

Yes, my build platform is FreeBSD, and I have no space left to install Linux, unless I nuke the Haiku partition. Or if I could install the Linux userland under the FreeBSD Linuxolator. Anyway, if my suspicion above turns out correct, this is a mute point and I can happily keep my HD Linux-free. :D

(it was a profound dislike for the mess that are the various Linux distros that I got involved with BeOS to begin with!)

in reply to: ↑ 8 ; follow-up: ↓ 10   Changed 8 months ago by bonefish

Replying to meianoite:

Replying to bonefish:

The dependencies look OK for both cases, so I'd consider this a jam bug.

Some revisions ago I couldn't trigger this either, remember? Those are always timing-dependent, but I manage to reproduce this quite easily now. I just have to call a parallel jam and do a "make -j8 index" on /usr/ports to generate a lot of disk activity. But I don't think this is a jam bug at all. I don't really understand how Jam generates its dependency trees, but after some investigation I found that parse.h is generated by the Yacc1 rule being applied to parse.y:

[...]

but nowhere is parse.h declared dependent on parse.y.

You are mistaken. The Yacc rule establishes that dependency.

So it's very probable Jam simply launched the shell that compiles print_cmd.c independently. Does this make sense to you?

Nope. As I wrote, I checked the dependencies jam knows of ("jam -dd") and they look OK. If jam nevertheless executes the actions for dependent targets out of order respectively starts the actions for the dependent target before those for the dependency have finished, it's obviously a bug in jam. Or in the job management functionality it uses (mainly wait()).

Replying to bonefish:

Under Haiku I couldn't reproduce it (two cores only, though). Am I assuming correctly that your build platform is FreeBSD? Would be interesting, if this can be reproduced on Linux, too.

I tried a few runs under Linux (still with 2 cores only) and bash was always built successfully.

in reply to: ↑ 9   Changed 8 months ago by meianoite

Replying to bonefish:

I tried a few runs under Linux (still with 2 cores only) and bash was always built successfully.

I can only make it happen once or twice out of 10 attempts if I build bash in isolation. Which again confirms that this is timing-based. But I'm yet to have it succeed if I build the whole of Haiku the way I've described. I've determined that producing the background disk noise isn't even necessary, but I don't know if that is related to me upping things a notch to j16:

rm -rf objects/ build_packages/ tmp/ build/*cache ; jam -aqj16 @all |& tee j16.log

The redirection is tcsh syntax.

Building with an added -dd argument indeed shows the correct dependency chaining, but it fails nonetheless. And generates a huge log that compresses to over 700k with bzip2 --best, 760k with 7z "ultra" settings.

Now, for an interesting tidbit: I'm able to trigger at least the builtins.c error even using cpuset to limit the CPUs jam was allowed to use to 2, which was confirmed by monitoring with htop. But for this to succeed (er, fail) I have to produce the disk activity with "make -j8 index" on /usr/ports.

> rm -rf objects/ build_packages/ tmp/ build/*cache ; sudo cpuset -c -l 0-1 -- sudo -u andre jam -aqj16 @all |& tee j16-2.log
> egrep "(failed|skipped)" j16-2.log

...failed Cc /usr/home/andre/devel/Haiku/trunk/generated.gcc2/objects/haiku/x86/release/bin/bash/builtins/builtins.o ...
...skipped libbuiltins.a for lack of libbuiltins.a(builtins.o)...
...skipped bash for lack of libbuiltins.a...
...failed updating 1 target(s)...
...skipped 2 target(s)...

Jam bug or build system bug, it's still not a desirable situation, specially with Haiku build clusters in the horizon ;)

I understand that you have a limitation on making it happen on a dual-core machine, and we're getting nowhere until you can put your finger straight on the problem. Would you like to try debugging it straight on my machine? Send a public RSA key my way and I'll create a user for you pronto.

follow-up: ↓ 12   Changed 8 months ago by bonefish

Thanks for the offer, but this problem seem to be on jam's side and, since I plan to rewrite jam in the not so distant future, I'm not particularly inclined to debug it.

If you're interested in looking into it, execunix.c is where the job execution happens and where I would start to track the problem.

in reply to: ↑ 11   Changed 8 months ago by meianoite

Replying to bonefish:

Thanks for the offer, but this problem seem to be on jam's side and, since I plan to rewrite jam in the not so distant future, I'm not particularly inclined to debug it.

Sounds interesting. What are your plans? Reimplement it from scratch while keeping the Jamfile syntax? Using C++ or some other language more amenable to text parsing?

If you're interested in looking into it, execunix.c is where the job execution happens and where I would start to track the problem.

Thanks, but I think I'll pass :P

  Changed 8 months ago by axeld

  • milestone changed from R1/alpha1 to Unscheduled

I don't see why this should be an alpha blocker.

  Changed 6 months ago by bonefish

  • blocking 4579 added

(In #4579) Duplicate of #4091 (cf. the last comments). Appears to be a jam problem.

  Changed 6 months ago by korli

Could it be related to the yacc multiline actions ? In multiline actions, it seems jam writes a shell script and executes it.

Changed 3 weeks ago by mmadia

possible -jN fix for bash

  Changed 3 weeks ago by mmadia

  • version changed from R1/pre-alpha1 to R1/Development

With the above patch & this script :

#!/bin/bash
set -o errexit

JOBS=8

function BashFail()
{
	HAIKU_ATTEMPT=0
	while true ; do 
		((HAIKU_ATTEMPT++)) 
		echo $HAIKU_ATTEMPT 
		rm -rf objects/
		rm -rf tmp/
		time ((jam -aqj${JOBS} bash &> log) || (sed -n -e '/^...failed/p' log && false))
		done
}
BashFail

250 iterations were done successfully in a row without interruption on an i3 in FreeBSD 8.0 32bit. To note, at that point the script was manually killed. Normally without this patch, it'll fail in less than 20 iterations.

On a dual i7 xeon (8+HT), at least 71 iterations occurred with -j32 ... I'm not sure if that tester stopped it at that point or went to sleep.

  Changed 3 weeks ago by mmadia

The tester on the dual i7 stopped running the test script after 775 iterations. His OS is Ubuntu 64bit. think it's 9.10.

On a side note, #Depends [ FGristFiles builtins.c ] : $(source) ; was my initial fix, which was later rewritten to use :S=.c .

  Changed 3 weeks ago by bonefish

  • priority changed from normal to low

Tested on my machine under Linux as well. No build failure after 250 iterations.

Obviously the additional dependencies are not correct, but as a temporary work-around for the jam bug, that's acceptable, I guess.

Applied the change in r35619. Leaving the ticket open until the jam bug is fixed (or jam is replaced).

Note: See TracTickets for help on using tickets.