构建OpenJDK时争论不休

use*_*561 6 openjdk makefile

在尝试构建OpenJDK时,我在执行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'
Run Code Online (Sandbox Code Playgroud)

跑步make all LOG=trace JOBS=1

+ /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
Run Code Online (Sandbox Code Playgroud)

作为不好的论点.相关部分是-I/home/ft/open -j1 -dk8/make/common.grep -R 'I/home/ft/open -j1 -dk8/make/common'只出现在日志中../configure --enable-debug无论有没有这种情况.

在邮件列表上发现了一个似乎相似的问题,但似乎他放弃了.

编辑:搜索-ji,make/HotspotWrapper.gmk:@($(CD) $(HOTSPOT_TOPDIR)/make && $(MAKE) -j1 $(HOTSPOT_MAKE_ARGS) SPEC=$(HOTSPOT_SPEC) BASE_SPEC=$(BASE_SPEC))是破坏事物的主要候选人

小智 7

这就是为我做的事情.在hotspot目录中应用以下补丁:

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}}'/
Run Code Online (Sandbox Code Playgroud)

看起来其中一个规则太宽了,如果它们包含aj并且碰巧在破折号之后匹配随机目录.


use*_*561 5

这似乎是文档错误(JDK-8028407)的一部分.解决这个问题的方法是将我的make降级为3.82,这样可以设法编译OpenJDK.