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 <erik.joels...@oracle.com> 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 <bug-m...@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

Reply via email to