I filed JDK-8028407 with this proposed patch attached, not sure which repo is proper channel to review/commit.
Cheers, Henry On November 5, 2013 at 8:31:57 AM, Erik Joelsson ([email protected]) wrote: You are right, that would be more correct. /Erik On 2013-11-05 17:13, Henry Jen wrote: > +1, that would work. > > I just wondering if it’s better to have I in both bracket to be tolerant to > case like -RsI<path>, although it’s not a problem now, but that seems legal > options to me. > > Cheers, > Henry > > On Nov 5, 2013, at 4:27 AM, Erik Joelsson <[email protected]> wrote: > >> So this only happens in hotspot because of >> make/linux/makefiles/adjust-mflags.sh. I would suggest this change to fix >> it. It adds -I to a set of options that cannot be combined with -j sharing >> the same dash (since -I requires an argument). >> >> diff -r ddc3758f68db make/linux/makefiles/adjust-mflags.sh >> --- a/make/linux/makefiles/adjust-mflags.sh >> +++ b/make/linux/makefiles/adjust-mflags.sh >> @@ -64,7 +64,7 @@ >> echo "$MFLAGS" \ >> | sed ' >> s/^-/ -/ >> - s/ -\([^ ][^ ]*\)j/ -\1 -j/ >> + s/ -\([^ I][^ ]*\)j/ -\1 -j/ >> s/ -j[0-9][0-9]*/ -j/ >> s/ -j\([^ ]\)/ -j -\1/ >> s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ >> >> /Erik >> >> On 2013-11-05 07:18, Henry Jen wrote: >>> Yes, GNU make 4.0 change the format of MFLAGS so that there is no longer >>> space between -I and folder. >>> >>> Cheers, >>> Henry >>> >>> >>> On 11/04/2013 01:38 AM, Erik Joelsson wrote: >>>> This seems to be make 4.0 specific. I saw the same error when trying a >>>> home built make 4.0 on Solaris the other day (for a completely different >>>> reason so I didn't pursue the problem). >>>> >>>> We will investigate. >>>> >>>> /Erik >>>> >>>> On 2013-11-02 08:30, Henry Jen wrote: >>>>> What I don't understand(misleading me) is that my previous Ubuntu >>>>> setup has same directory structure, but not seeing this problem. >>>>> >>>>> Cheers, >>>>> Henry >>>>> >>>>> On 11/02/2013 12:27 AM, Henry Jen wrote: >>>>>> 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 <[email protected]> >>>>>>>>> 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
