Opened 15 years ago

Closed 6 years ago

Last modified 6 years ago

#4091 closed bug (fixed)

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: Blocking: #4579, #10023
Platform: All

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 (1)

bash.patch (660 bytes ) - added by mmadia 14 years ago.
possible -jN fix for bash

Download all attachments as: .zip

Change History (31)

comment:1 by bonefish, 15 years ago

The first and the third problem are fixed in hrev31523 respectively hrev31524. 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 ; comment:2 by meianoite, 15 years ago

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 ; comment:3 by bonefish, 15 years ago

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 ; comment:4 by meianoite, 15 years ago

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 :)

hrev31524:

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 ; comment:5 by meianoite, 15 years ago

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 comment:6 by meianoite, 15 years ago

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)

comment:7 by bonefish, 15 years ago

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 ; comment:8 by meianoite, 15 years ago

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 ; comment:9 by bonefish, 15 years ago

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 comment:10 by meianoite, 15 years ago

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.

comment:11 by bonefish, 15 years ago

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 comment:12 by meianoite, 15 years ago

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

comment:13 by axeld, 15 years ago

Milestone: R1/alpha1Unscheduled

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

comment:14 by bonefish, 15 years ago

Blocking: 4579 added

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

comment:15 by korli, 15 years ago

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

by mmadia, 14 years ago

Attachment: bash.patch added

possible -jN fix for bash

comment:16 by mmadia, 14 years ago

Version: R1/pre-alpha1R1/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.

comment:17 by mmadia, 14 years ago

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 .

comment:18 by bonefish, 14 years ago

Priority: normallow

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 hrev35619. Leaving the ticket open until the jam bug is fixed (or jam is replaced).

comment:19 by luroh, 12 years ago

Still here in hrev44331, gcc2. I can reliably reproduce it building haiku with -j32 on an i7 mobile (2+HT) under 64-bit Linux.

MkBuiltinsExt1 generated/objects/haiku/x86/common/bin/bash/builtins/builtext.h generated/objects/haiku/x86/common/bin/bash/builtins/builtins.c 
Cc generated/objects/haiku/x86/release/bin/bash/builtins/builtins.o 
MkBuiltinsComp1 generated/objects/haiku/x86/common/bin/bash/builtins/alias.c 
i586-pc-haiku-gcc: generated/objects/haiku/x86/common/bin/bash/builtins/builtins.c: No such file or directory
C++ generated/objects/linux/x86_64/release/tools/makebootable/platform/bios_ia32/makebootable.o 
i586-pc-haiku-gcc: No input files
Yacc1 generated/objects/haiku/x86/common/bin/bash/parse.c generated/objects/haiku/x86/common/bin/bash/parse.h 

/home/ishmael/develop/haiku/haiku/generated/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -nostdinc -march=pentium -DHAVE_CONFIG_H -DSHELL -c "generated/objects/haiku/x86/common/bin/bash/builtins/builtins.c" -D__HAIKU__ -DHAIKU_DISTRO_COMPATIBILITY_OFFICIAL -D__INTEL__ -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -DB_USE_BUILTIN_ATOMIC_FUNCTIONS -DHAIKU_INCLUDE_PATENTED_CODE=0 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -Ibuild/user_config_headers -Ibuild/config_headers -Isrc/bin/bash/builtins -Igenerated/objects/common/bin/bash/builtins -Igenerated/objects/linux/x86_64/common/bin/bash/builtins -Igenerated/objects/haiku/x86/common/bin/bash/builtins -I- -Isrc/bin/bash/builtins/.. -Isrc/bin/bash/builtins/../include -Isrc/bin/bash/builtins/../lib -Iheaders/cpp -Iheaders/build/gcc-2.95.3 -Iheaders -Iheaders/posix -Iheaders/glibc -Iheaders/os -Iheaders/os/add-ons -Iheaders/os/add-ons/file_system -Iheaders/os/add-ons/graphics -Iheaders/os/add-ons/input_server -Iheaders/os/add-ons/registrar -Iheaders/os/add-ons/screen_saver -Iheaders/os/add-ons/tracker -Iheaders/os/app -Iheaders/os/device -Iheaders/os/drivers -Iheaders/os/game -Iheaders/os/interface -Iheaders/os/kernel -Iheaders/os/locale -Iheaders/os/media -Iheaders/os/mail -Iheaders/os/midi -Iheaders/os/midi2 -Iheaders/os/net -Iheaders/os/opengl -Iheaders/os/storage -Iheaders/os/support -Iheaders/os/translation -Iheaders/private/. -o "generated/objects/haiku/x86/release/bin/bash/builtins/builtins.o" ;

...failed Cc generated/objects/haiku/x86/release/bin/bash/builtins/builtins.o ...

I'm going to add a warning to the build guide.

comment:20 by luroh, 12 years ago

Incidentally, I have so far been unable to reproduce the problem using a Jam compiled with -O2 instead of the default -O3.

Version 0, edited 12 years ago by luroh (next)

comment:21 by pulkomandy, 10 years ago

Resolution: fixed
Status: newclosed

bash has been outsourced, so this can't happen anymore.

comment:22 by luroh, 10 years ago

Warning removed from the build guide.

comment:23 by pulkomandy, 10 years ago

Resolution: fixed
Status: closedreopened

I was a bit too quick to fix this; it seems. The error now happens while building tcpdump:

Cc /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/network/ftpd/ftpcmd.o 
C++ /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/rc/compile.o 
/home/builder/builds/haiku/src/bin/network/ftpd/ftpcmd.y: In function `yyparse':
/home/builder/builds/haiku/src/bin/network/ftpd/ftpcmd.y:669: warning: implicit declaration of function `strncasecmp'
Cc /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/network/tcpdump/libpcap/scanner.o 
/home/builder/builds/haiku/src/bin/network/tcpdump/libpcap/scanner.l:57: grammar.h: No such file or directory
Cc /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/network/tcpdump/libpcap/grammar.o 
SetVersion1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/diff 
Chmod1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/diff 
CreateAppMimeDBEntries1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/diff_mimedb 
SetVersion1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/cmp 
SetVersion1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/sdiff 
SetVersion1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/diff3 
Chmod1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/cmp 
CreateAppMimeDBEntries1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/cmp_mimedb 
Chmod1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/sdiff 
Chmod1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/diff3 
SetVersion1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/patch/patch 
Lex /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/common/bin/rc/lexer.cpp 
CreateAppMimeDBEntries1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/diff3_mimedb 
CreateAppMimeDBEntries1 /home/builder/builds/haiku-repository-x86_gcc2_hybrid/generated/objects/haiku/x86_gcc2/release/bin/diffutils/src/sdiff_mimedb 
/home/builder/builds/haiku/src/bin/network/tcpdump/libpcap/scanner.l:80: parse error before `pcap_lval'
/home/builder/builds/haiku/src/bin/network/tcpdump/libpcap/scanner.l:80: warning: type defaults to `int' in declaration of `pcap_lval'
/home/builder/builds/haiku/src/bin/network/tcpdump/libpcap/scanner.l:80: warning: data definition has no type or storage class

http://buildbot.haiku-os.org/builders/haiku-repository-x86_gcc2_hybrid/builds/637/steps/jam%20%40release-raw%20build%20%26lt%3Brepository%26gt%3BHaiku/logs/stdio

Notice how the build of scanner.l complains about missing grammar.h just before grammar.o is built here. The dependency to grammar.h is declared (in src/bin/network/tcpdump/libpcap/Jamfile).

comment:24 by luroh, 10 years ago

Warning text restored again.

comment:25 by jessicah, 10 years ago

The libpcap issue should be fixed in hrev48061.

comment:26 by waddlesplash, 9 years ago

Blocking: 10023 added

(In #10023) Indeed it is a duplicate. The bug described in this issue was fixed, there are still some more in #4091 however.

comment:27 by waddlesplash, 6 years ago

Resolution: fixed
Status: reopenedclosed

comment:28 by luroh, 6 years ago

Out of interest, any idea what changed the situation?

comment:29 by waddlesplash, 6 years ago

The libpcap issue was fixed as noted above, and then in the meantime bash, tcpdump, and libpcap have all been moved out of the tree and are no longer built with jam, meaning that the issues in this ticket are now resolved. If there is some other parallel build breakage a separate ticket should be opened.

comment:30 by luroh, 6 years ago

I see. Well done and thank you for the explanation.

Note: See TracTickets for help on using tickets.