When trying to build OpenJDK, I get a series of errors while doing make all
:
/usr/bin/make: invalid option -- '8'
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'a'
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'c'
Running make all LOG=trace JOBS=1
gives
+ /usr/bin/make VERBOSE= LOG_LEVEL=trace -R -I /home/ft/openjdk8/make/common -f adlc.make -r -rRw -I/home/ft/open -j1 -dk8/make/common -I/home/ft/openjdk8/make/common -I/home/ft/openjdk8/make/common -I/home/ft/openjdk8/make/common -I/home/ft/openjdk8/make/common
as the bad argument. The relevent section is -I/home/ft/open -j1 -dk8/make/common
. grep -R 'I/home/ft/open -j1 -dk8/make/common'
turns up nothing more than the log. This occurs with ./configure --enable-debug
and without.
I found an issue on a mailing list that seems similar, but it appears that he gave up.
Edit: Searched for -ji
, make/HotspotWrapper.gmk
:@($(CD) $(HOTSPOT_TOPDIR)/make && $(MAKE) -j1 $(HOTSPOT_MAKE_ARGS) SPEC=$(HOTSPOT_SPEC) BASE_SPEC=$(BASE_SPEC))
is the main candidate for breaking things
Here's what did it for me. Apply the following patch inside the hotspot directory:
diff -r 87ee5ee27509 make/linux/makefiles/adjust-mflags.sh
--- a/make/linux/makefiles/adjust-mflags.sh Tue Mar 04 11:51:03 2014 -0800
+++ b/make/linux/makefiles/adjust-mflags.sh Wed Sep 30 16:51:55 2015 -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}}'/
It looks like one of the rules is just too wide and is matching random directories if they contain a j and happen to come after a dash.
This appears to be part of a documented bug (JDK-8028407). The fix for this was to downgrade my make to 3.82, which does manage to compile OpenJDK.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With