Build failure with gnu make 4.0 on Arch Linux

Erik Joelsson erik.joelsson at oracle.com
Mon Nov 4 09:37:04 UTC 2013


On 2013-11-02 16:14, Daniel D. Daugherty wrote:
> > The Gnu make version is 4.0,
>
> I'm pretty sure the OpenJDK builds don't work on any version of
> GNUMake newer than 3.81. Checkout this version:
>
Actually, we have been using 3.81, 3.82 and 3.82.* for a long while 
depending on platform. We recently made the version check accept 4.0 
since Cygwin installs it by default now and it works on that platform.

> $ ls -l /java/devtools/linux/bin/make381
> -rwxrwxr-x   1 nobody   nobody    635027 Sep 16  2009 
> /java/devtools/linux/bin/make381
>
This should work as a workaround until we get to the bottom of this.

/Erik
> Dan
>
>
> On 11/2/13 3: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