Build failure with gnu make 4.0 on Arch Linux

Henry Jen henry.jen at oracle.com
Sat Nov 2 07:27:42 UTC 2013


Yes, I just verified that's the result of sed. Following patch fix it.
I don't quite understand why we need that line.

Cheers,
Henry

diff -r ea1b8c643fc8 make/linux/makefiles/adjust-mflags.sh
--- a/make/linux/makefiles/adjust-mflags.sh	Wed Oct 30 13:43:16 2013 -0700
+++ b/make/linux/makefiles/adjust-mflags.sh	Sat Nov 02 00:26:42 2013 -0700
@@ -64,7 +64,6 @@
  	echo "$MFLAGS" \
  	| sed '
  		s/^-/ -/
-		s/ -\([^ 	][^ 	]*\)j/ -\1 -j/
  		s/ -j[0-9][0-9]*/ -j/
  		s/ -j\([^ 	]\)/ -j -\1/
  		s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/


On 11/02/2013 12:24 AM, David Holmes wrote:
> Hi Henry,
>
> Looks to me like the script that tries to hack the -j option has messed up:
>
> -I /home/hjen/ws/tl/common/makefiles -f adlc.make -r  -rRs -I/home/h -j3
> -en/ws/tl/common/makefiles
>
> Note the -j3 which seems to have been inserted into the middle of
> /hjen/ws ...
>
> David
>
> On 2/11/2013 1:36 PM, Henry Jen wrote:
>> Hi,
>>
>> I am trying to setup build environment on a new installation, and
>> encounter following build error.
>>
>> I suspect this is because of missing some required tools and software,
>> however, the error message is not helpful.
>>
>> Tried to echo the make commang used, but as you can see the output seems
>> to be scrambled. Is there a way to find out what exact command causing
>> problem? I tried to configure --with-jobs=1, that doesn't help.
>>
>> The Gnu make version is 4.0, let me know what else information I can
>> collect to help diagnosis the problem.
>>
>> Cheers,
>> Henry
>>
>>
>>>
>>> INFO: ZIP_DEBUGINFO_FILES=1
>>> /usr/bin/make -s VERBOSE=-s LOG_LEVEL=warn -R -I
>>> /home/hjen/ws/tl/common/makefiles -f adlc.make -r  -rRs -I/home/h -j3
>>> -en/ws/tl/common/makefiles -I/home/hjen/ws/tl/common/makefiles
>>> -I/home/hjen/ws/tl/common/makefiles
>>> -I/home/hjen/ws/tl/common/makefiles -I/home/hjen/ws/tl/common/makefiles
>>> /usr/bin/make: invalid option -- '/'
>>> /usr/bin/make: invalid option -- '/'
>>> Usage: make [options] [target] ...
>>> Options:
>>>   -b, -m                      Ignored for compatibility.
>>>   -B, --always-make           Unconditionally make all targets.
>>>   -C DIRECTORY, --directory=DIRECTORY
>>>                               Change to DIRECTORY before doing anything.
>>>   -d                          Print lots of debugging information.
>>>   --debug[=FLAGS]             Print various types of debugging
>>> information.
>>>   -e, --environment-overrides
>>>                               Environment variables override makefiles.
>>>   --eval=STRING               Evaluate STRING as a makefile statement.
>>>   -f FILE, --file=FILE, --makefile=FILE
>>>                               Read FILE as a makefile.
>>>   -h, --help                  Print this message and exit.
>>>   -i, --ignore-errors         Ignore errors from recipes.
>>>   -I DIRECTORY, --include-dir=DIRECTORY
>>>                               Search DIRECTORY for included makefiles.
>>>   -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with
>>> no arg.
>>>   -k, --keep-going            Keep going when some targets can't be
>>> made.
>>>   -l [N], --load-average[=N], --max-load[=N]
>>>                               Don't start multiple jobs unless load is
>>> below N.
>>>   -L, --check-symlink-times   Use the latest mtime between symlinks
>>> and target.
>>>   -n, --just-print, --dry-run, --recon
>>>                               Don't actually run any recipe; just
>>> print them.
>>>   -o FILE, --old-file=FILE, --assume-old=FILE
>>>                               Consider FILE to be very old and don't
>>> remake it.
>>>   -O[TYPE], --output-sync[=TYPE]
>>>                               Synchronize output of parallel jobs by
>>> TYPE.
>>>   -p, --print-data-base       Print make's internal database.
>>>   -q, --question              Run no recipe; exit status says if up to
>>> date.
>>>   -r, --no-builtin-rules      Disable the built-in implicit rules.
>>>   -R, --no-builtin-variables  Disable the built-in variable settings.
>>>   -s, --silent, --quiet       Don't echo recipes.
>>>   -S, --no-keep-going, --stop
>>>                               Turns off -k.
>>>   -t, --touch                 Touch targets instead of remaking them.
>>>   --trace                     Print tracing information.
>>>   -v, --version               Print the version number of make and exit.
>>>   -w, --print-directory       Print the current directory.
>>>   --no-print-directory        Turn off -w, even if it was turned on
>>> implicitly.
>>>   -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
>>>                               Consider FILE to be infinitely new.
>>>   --warn-undefined-variables  Warn when an undefined variable is
>>> referenced.
>>>
>>> This program built for x86_64-unknown-linux-gnu
>>> Report bugs to <bug-make at gnu.org>
>>> make[5]: *** [ad_stuff] Error 2
>>> /home/hjen/ws/tl/hotspot/make/linux/makefiles/top.make:91: recipe for
>>> target 'ad_stuff' failed
>>> make[4]: *** [product] Error 2
>>> /home/hjen/ws/tl/hotspot/make/linux/Makefile:289: recipe for target
>>> 'product' failed
>>> make[3]: *** [generic_build2] Error 2
>>> Makefile:216: recipe for target 'generic_build2' failed
>>> make[2]: *** [product] Error 2
>>> Makefile:167: recipe for target 'product' failed
>>> make[1]: ***
>>> [/home/hjen/ws/tl/build/linux-x86_64-normal-server-release/hotspot/_hotspot.timestamp]
>>>
>>> Error 2
>>> HotspotWrapper.gmk:44: recipe for target
>>> '/home/hjen/ws/tl/build/linux-x86_64-normal-server-release/hotspot/_hotspot.timestamp'
>>>
>>> failed
>>> /export/home/hjen/ws/tl//common/makefiles/Main.gmk:108: recipe for
>>> target 'hotspot-only' failed
>>> make: *** [hotspot-only] Error 2



More information about the build-dev mailing list