我的代码是从java.net网站下载的,名称为openjdk-8-src-b132-03_mar_2014.zip
CPU:i54469
OS:Ubuntu 15.04
执行CONFIGURE之前需要 unset JAVA_TOOL_OPTIONS
configure执行成功后,运行下面语句报错了,具体错误请看标黄的部分
/Desktop/openjdk$ make CONF=linux-x86_64-normal-server-fastdebug
Building 'linux-x86_64-normal-server-fastdebug' (matching CONF=linux-x86_64-normal-server-fastdebug)
Building OpenJDK for target 'default' in configuration 'linux-x86_64-normal-server-fastdebug'
make[2]: warning: -jN forced in submake: disabling jobserver mode.
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: ALT_OBJCOPY=/usr/bin/objcopy
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: ALT_OBJCOPY=/usr/bin/objcopy
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1/usr/bin/make: invalid option -- '/'/usr/bin/make: invalid option -- 'a'/usr/bin/make: invalid option -- '/'/usr/bin/make: invalid option -- 'c'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-pc-linux-gnu
Report bugs to bug-make@gnu.org
make[5]: *** [ad_stuff] Error 2
/home/dxt/Desktop/openjdk/hotspot/make/linux/makefiles/top.make:91: recipe for target 'ad_stuff' failed
/home/dxt/Desktop/openjdk/hotspot/make/linux/Makefile:289: recipe for target 'fastdebug' failed
make[4]: *** [fastdebug] Error 2
Makefile:216: recipe for target 'generic_build2' failed
make[3]: *** [generic_build2] Error 2
Makefile:167: recipe for target 'fastdebug' failed
make[2]: *** [fastdebug] Error 2
HotspotWrapper.gmk:44: recipe for target '/home/dxt/Desktop/openjdk/build/linux-x86_64-normal-server-fastdebug/hotspot/_hotspot.timestamp' failed
make[1]: *** [/home/dxt/Desktop/openjdk/build/linux-x86_64-normal-server-fastdebug/hotspot/_hotspot.timestamp] Error 2
/home/dxt/Desktop/openjdk//make/Main.gmk:108: recipe for target 'hotspot-only' failed
make: *** [hotspot-only] Error 2
dxt@dxt-All-Series:~/Desktop/openjdk$ pon dsl-provider
Plugin rp-pppoe.so loaded.
我的解决方式,
打开 hotspot/make/linux/makefiles/adjust-mflags.sh 文件
63 MFLAGS=`
64 echo "$MFLAGS" \
65 | sed '
66 s/^-/ -/
67 s/ -j[0-9][0-9]*/ -j/
68 s/ -j([^ ])/ -j -\1/
69 s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/
70 ' `
删除加粗的部分
过了一年都没有回复,楼上说的都是都有问题,1 下新版本也是这样,2 降级make,make哪边出现各种依赖,根本安装不了。
我自己已经解决了
vim ./hotspot/make/linux/makefiles/gcc.make
注释掉:
WARNINGS_ARE_ERRORS = -Werror
确切的说是openjdk/hotspot/make/linux/makefiles/top.make的第91行报错了
86 $(Cached_plat): $(Plat_File)
87 $(CDG) cp $(Plat_File) $(Cached_plat)
88
89 # make AD files as necessary
90 ad_stuff: $(Cached_plat) $(adjust-mflags)
91 @$(MAKE) -f adlc.make $(MFLAGS-adjusted)
92
93 # generate JVMTI files from the spec
94 jvmti_stuff: $(Cached_plat) $(adjust-mflags)
95 @$(MAKE) -f jvmti.make $(MFLAGS-adjusted)
请问一下,有解决的方法没有?我也碰到了,但是用virtualbox 安装的32位14.04ubuntu下,32 位openjdk8,一点问题都没有,可以编通。真机64位ubuntu 16.04就是不可以
你jdk8版本太老了,但是你系统又比较新(很多工具,例如make也是最新的),导致很多不匹配。解决办法换成最新版本的jdk8吧。具体方法:hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/ && sh get_source.sh. 后面就是一样的。
我也遇到同样问题,下了jdk8u,刚才那个错误没有了.暂时还在编,但愿能编成功
亲测:make降级 3.81
编译前要搞定这三个环境变量:
export LANG=C
unset JAVA_HOME
unset CLASSPATH
楼上几种方法都试了都不行- -可能情况不一样 我的话是因为在安装完后 输入了-update 和-upgrade 命令 导致版本升级了- - 更新了太多东西 导致无法
建议要么重装 要么就是别执行更新的方法 版本是utunbu 16.0 因为学习用的 所以不需要升级到新版本 错误原因其实就是因为jdk版本太老或者是make版本太高