• ubuntu 编译 jdk (三)


    root@ubuntu:/home/gap/jdk8u# make    
    
    WARNING: You have the following ALT_ variables set:
    ALT_OUTPUTDIR=/home/gap/build
    ALT_ variables are deprecated and will be ignored. Please clean your environment.
    
    Building OpenJDK for target 'default' in configuration 'linux-x86_64-normal-server-fastdebug'
    
    ## Starting langtools
    /bin/sh: 1: cd: can't cd to /home/gap/jdk8u/langtools/make
    /home/gap/jdk8u//make/Main.gmk:84: recipe for target 'langtools-only' failed
    make: *** [langtools-only] Error 2
    

    前面参考的JVM那本书上的,本想指定编译输出目录,结果报错。这里也看的出来,因为我以configure配置时,搞成了.

    bash ./configure --enable-debug --with-target-bits=64

    返工。bash ./configure  --with-target-bits=64

    root@ubuntu:/home/gap/jdk8u# make clean
    Cleaning langtools build artifacts ... done
    Cleaning corba build artifacts ... done
    Cleaning jaxp build artifacts ... done
    Cleaning jaxws build artifacts ... done
    Cleaning hotspot build artifacts ... done
    Cleaning jdk build artifacts ... done
    Cleaning nashorn build artifacts ... done
    Cleaning images build artifacts ... done
    Cleaning overlay-images build artifacts ... done
    Cleaning bootcycle-build build artifacts ... done
    Cleaning docs build artifacts ... done
    Cleaning docstemp build artifacts ... done
    Cleaning testoutput build artifacts ... done
    Cleaned all build artifacts.
    
    root@ubuntu:/home/gap/jdk8u# bash ./configure  --with-target-bits=64
    bash: ./configure : No such file or directory
    

    操,configure文件都不在了。

    root@ubuntu:/home/gap/jdk8u# make help
    
    OpenJDK Makefile help
    =====================
    
    Common make targets
    .  make [default]         # Compile all product in langtools, hotspot, jaxp, jaxws,
    .                         # corba and jdk
    .  make all               # Compile everything, all repos and images
    .  make images            # Create complete j2sdk and j2re images
    .  make docs              # Create javadocs
    .  make overlay-images    # Create limited images for sparc 64 bit platforms
    .  make profiles          # Create complete j2re compact profile images
    .  make bootcycle-images  # Build images twice, second time with newly build JDK
    .  make install           # Install the generated images locally
    .  make clean             # Remove all files generated by make, but not those
    .                         # generated by configure
    .  make dist-clean        # Remove all files, including configuration
    .  make help              # Give some help on using make
    .  make test              # Run tests, default is all tests (see TEST below)
    
    Targets for specific components
    (Component is any of langtools, corba, jaxp, jaxws, hotspot, jdk, nashorn, images, overlay-images, docs or test)
    .  make <component>       # Build <component> and everything it depends on. 
    .  make <component>-only  # Build <component> only, without dependencies. This
    .                         # is faster but can result in incorrect build results!
    .  make clean-<component> # Remove files generated by make for <component>
    
    Useful make variables
    .  make CONF=             # Build all configurations (note, assignment is empty)
    .  make CONF=<substring>  # Build the configuration(s) with a name matching
    .                         # <substring>
    
    .  make LOG=<loglevel>    # Change the log level from warn to <loglevel>
    .                         # Available log levels are:
    .                         # 'warn' (default), 'info', 'debug' and 'trace'
    .                         # To see executed command lines, use LOG=debug
    
    .  make JOBS=<n>          # Run <n> parallel make jobs
    .                         # Note that -jN does not work as expected!
    
    .  make test TEST=<test>  # Only run the given test or tests, e.g.
    .                         # make test TEST="jdk_lang jdk_net"
    
    make: Nothing to be done for 'help'.
    
    root@ubuntu:/home/gap/jdk8u# make dist-clean
    Cleaning langtools build artifacts ... done
    Cleaning corba build artifacts ... done
    Cleaning jaxp build artifacts ... done
    Cleaning jaxws build artifacts ... done
    Cleaning hotspot build artifacts ... done
    Cleaning jdk build artifacts ... done
    Cleaning nashorn build artifacts ... done
    Cleaning images build artifacts ... done
    Cleaning overlay-images build artifacts ... done
    Cleaning bootcycle-build build artifacts ... done
    Cleaning docs build artifacts ... done
    Cleaning docstemp build artifacts ... done
    Cleaning testoutput build artifacts ... done
    Cleaned all build artifacts.
    Removing configuration directory for 'linux-x86_64-normal-server-fastdebug'
    Cleaned everything, you will have to re-run configure.
    

    仿佛看见阳光了,you will have to re-run configure.

    root@ubuntu:/home/gap/jdk8u# bash ./configure  --with-target-bits=64
    bash: ./configure : No such file or directory
    root@ubuntu:/home/gap/jdk8u# ll
    total 440
    drwxr-xr-x 12 root root   4096 Jan 16 10:58 ./
    drwxr-xr-x 29 gap  gap    4096 Jan 16 10:40 ../
    drwxr-xr-x  4 root root   4096 Jan 16 10:42 .hg/
    -rw-r--r--  1 root root     70 Jan 16 08:57 .hgignore
    -rw-r--r--  1 root root  50049 Jan 16 08:57 .hgtags
    drwxr-xr-x  2 root root   4096 Jan 16 08:57 .jcheck/
    -rw-r--r--  1 root root   1522 Jan 16 08:57 ASSEMBLY_EXCEPTION
    -rw-r--r--  1 root root  19274 Jan 16 08:57 LICENSE
    -rw-r--r--  1 root root   6232 Jan 16 08:57 Makefile
    -rw-r--r--  1 root root   1549 Jan 16 08:57 README
    -rw-r--r--  1 root root 129333 Jan 16 08:57 README-builds.html
    -rw-r--r--  1 root root 153824 Jan 16 08:57 THIRD_PARTY_README
    -rwxr-xr-x  1 root root   8696 Jan 16 10:58 a.out*
    drwxr-xr-x  2 root root   4096 Jan 16 11:11 build/
    drwxr-xr-x  6 root root   4096 Jan 16 08:57 common/
    -rw-r--r--  1 root root   1588 Jan 16 08:57 configure
    drwxr-xr-x  6 root root   4096 Jan 16 09:03 corba/
    -rwxr-xr-x  1 root root   3107 Jan 16 08:57 get_source.sh*
    drwxr-xr-x  7 root root   4096 Jan 16 09:05 jaxp/
    drwxr-xr-x  7 root root   4096 Jan 16 09:24 jdk/
    drwxr-xr-x  6 root root   4096 Jan 16 08:57 make/
    drwxr-xr-x 13 root root   4096 Jan 16 09:12 nashorn/
    drwxr-xr-x  3 root root   4096 Jan 16 08:57 test/
    

    执行还是报错,列出来看看。文件是有了。没有执行权限。给个

    root@ubuntu:/home/gap/jdk8u# chmod 755 configure 
    
    root@ubuntu:/home/gap/jdk8u# ll           
    total 440
    drwxr-xr-x 12 root root   4096 Jan 16 10:58 ./
    drwxr-xr-x 29 gap  gap    4096 Jan 16 10:40 ../
    drwxr-xr-x  4 root root   4096 Jan 16 10:42 .hg/
    -rw-r--r--  1 root root     70 Jan 16 08:57 .hgignore
    -rw-r--r--  1 root root  50049 Jan 16 08:57 .hgtags
    drwxr-xr-x  2 root root   4096 Jan 16 08:57 .jcheck/
    -rw-r--r--  1 root root   1522 Jan 16 08:57 ASSEMBLY_EXCEPTION
    -rw-r--r--  1 root root  19274 Jan 16 08:57 LICENSE
    -rw-r--r--  1 root root   6232 Jan 16 08:57 Makefile
    -rw-r--r--  1 root root   1549 Jan 16 08:57 README
    -rw-r--r--  1 root root 129333 Jan 16 08:57 README-builds.html
    -rw-r--r--  1 root root 153824 Jan 16 08:57 THIRD_PARTY_README
    -rwxr-xr-x  1 root root   8696 Jan 16 10:58 a.out*
    drwxr-xr-x  2 root root   4096 Jan 16 11:11 build/
    drwxr-xr-x  6 root root   4096 Jan 16 08:57 common/
    -r-xr-xr-x  1 root root   1588 Jan 16 08:57 configure*
    drwxr-xr-x  6 root root   4096 Jan 16 09:03 corba/
    -rwxr-xr-x  1 root root   3107 Jan 16 08:57 get_source.sh*
    drwxr-xr-x  7 root root   4096 Jan 16 09:05 jaxp/
    drwxr-xr-x  7 root root   4096 Jan 16 09:24 jdk/
    drwxr-xr-x  6 root root   4096 Jan 16 08:57 make/
    drwxr-xr-x 13 root root   4096 Jan 16 09:12 nashorn/
    drwxr-xr-x  3 root root   4096 Jan 16 08:57 test/
    
    root@ubuntu:/home/gap/jdk8u# bash ./configure   --with-target-bits=64
    Running generated-configure.sh
    configure: Configuration created at Wed Jan 16 11:20:02 CST 2019.
    configure: configure script generated at timestamp 1544009140.
    checking for basename... /usr/bin/basename
    checking for bash... /bin/bash
    checking for cat... /bin/cat
    checking for chmod... /bin/chmod
    checking for cmp... /usr/bin/cmp
    checking for comm... /usr/bin/comm
    checking for cp... /bin/cp
    checking for cut... /usr/bin/cut
    checking for date... /bin/date
    checking for gdiff... no
    checking for diff... /usr/bin/diff
    checking for dirname... /usr/bin/dirname
    checking for echo... /bin/echo
    checking for expr... /usr/bin/expr
    checking for file... /usr/bin/file
    checking for find... /usr/bin/find
    checking for head... /usr/bin/head
    checking for ln... /bin/ln
    checking for ls... /bin/ls
    checking for mkdir... /bin/mkdir
    checking for mktemp... /bin/mktemp
    checking for mv... /bin/mv
    checking for nawk... /usr/bin/nawk
    checking for printf... /usr/bin/printf
    checking for rm... /bin/rm
    checking for sh... /bin/sh
    checking for sort... /usr/bin/sort
    checking for tail... /usr/bin/tail
    checking for tar... /bin/tar
    checking for tee... /usr/bin/tee
    checking for touch... /usr/bin/touch
    checking for tr... /usr/bin/tr
    checking for uname... /bin/uname
    checking for uniq... /usr/bin/uniq
    checking for wc... /usr/bin/wc
    checking for which... /usr/bin/which
    checking for xargs... /usr/bin/xargs
    checking for gawk... no
    checking for mawk... mawk
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for fgrep... /bin/grep -F
    checking for a sed that does not truncate output... /bin/sed
    checking for cygpath... no
    checking for greadlink... no
    checking for readlink... /bin/readlink
    checking for df... /bin/df
    checking for SetFile... no
    checking for cpio... /bin/cpio
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking openjdk-build os-cpu... linux-x86_64
    checking openjdk-target os-cpu... linux-x86_64
    configure: --with-target-bits are set to build platform address size; argument has no meaning
    checking compilation type... native
    checking for top-level directory... /home/gap/jdk8u
    checking for presence of closed sources... no
    checking if closed source is suppressed (openjdk-only)... no
    checking which variant of the JDK to build... normal
    checking which interpreter of the JVM to build... template
    checking which variants of the JVM to build... server
    checking which debug level to use... release
    checking for sysroot... 
    checking for toolchain path... 
    checking for extra path... 
    checking where to store configuration... in default location
    checking what configuration name to use... linux-x86_64-normal-server-release
    checking for apt-get... apt-get
    checking for gmake... no
    checking for make... /usr/bin/make
    configure: Testing potential make at /usr/bin/make, found using make in PATH
    configure: Using GNU make 3.81 (or later) at /usr/bin/make (version: GNU Make 4.1)
    checking if find supports -delete... yes
    checking for unzip... /usr/bin/unzip
    checking for zip... /usr/bin/zip
    checking for ldd... /usr/bin/ldd
    checking for readelf... /usr/bin/readelf
    checking for hg... /usr/bin/hg
    checking for stat... /usr/bin/stat
    checking for time... /usr/bin/time
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking for 7z... no
    checking for unzip... unzip
    checking for wget... wget
    checking headful support... include support for both headful and headless
    checking for javac... /usr/bin/javac
    checking for java... /usr/bin/java
    configure: Found potential Boot JDK using java(c) in PATH
    checking for Boot JDK... /usr/lib/jvm/java-7-openjdk-amd64
    checking Boot JDK version... java version "1.7.0_95" OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-3) OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode) 
    checking for java in Boot JDK... ok
    checking for javac in Boot JDK... ok
    checking for javah in Boot JDK... ok
    checking for javap in Boot JDK... ok
    checking for jar in Boot JDK... ok
    checking for rmic in Boot JDK... ok
    checking for native2ascii in Boot JDK... ok
    checking if Boot JDK is 32 or 64 bits... 64
    checking flags for boot jdk java command ...  
    checking flags for boot jdk java command for big workloads...  -Xms64M -Xmx1600M -XX:ThreadStackSize=1536 -XX:PermSize=32m -XX:MaxPermSize=160m
    checking flags for boot jdk java command for small workloads...  -XX:+UseSerialGC -Xms32M -Xmx512M
    configure: Using default toolchain gcc (GNU Compiler Collection)
    checking for gcc... /usr/bin/gcc
    checking resolved symbolic links for CC... /usr/bin/gcc-5
    checking if CC is disguised ccache... no, keeping CC
    configure: Using gcc C compiler version 5.4.0 [gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609]
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether /usr/bin/gcc accepts -g... yes
    checking for /usr/bin/gcc option to accept ISO C89... none needed
    checking for g++... /usr/bin/g++
    checking resolved symbolic links for CXX... /usr/bin/g++-5
    checking if CXX is disguised ccache... no, keeping CXX
    configure: Using gcc C++ compiler version 5.4.0 [g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609]
    checking whether we are using the GNU C++ compiler... yes
    checking whether /usr/bin/g++ accepts -g... yes
    checking how to run the C preprocessor... /usr/bin/gcc -E
    checking how to run the C++ preprocessor... /usr/bin/g++ -E
    checking for ar... ar
    configure: Rewriting AR to "/usr/bin/ar"
    checking for strip... strip
    configure: Rewriting STRIP to "/usr/bin/strip"
    checking for otool... no
    checking for nm... nm
    configure: Rewriting NM to "/usr/bin/nm"
    checking for gobjcopy... no
    checking for objcopy... objcopy
    configure: Rewriting OBJCOPY to "/usr/bin/objcopy"
    checking for gobjdump... no
    checking for objdump... objdump
    configure: Rewriting OBJDUMP to "/usr/bin/objdump"
    checking for broken SuSE 'ld' which only understands anonymous version tags in executables... no
    checking for jtreg... no
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking stdio.h usability... yes
    checking stdio.h presence... yes
    checking for stdio.h... yes
    checking size of int *... 8
    checking for target address size... 64 bits
    checking whether byte ordering is bigendian... no
    checking if the C++ compiler supports "-std=gnu++98 -Werror"... yes
    checking if the C compiler supports "-m64"... yes
    checking if the C++ compiler supports "-m64"... yes
    checking if both compilers support "-m64"... yes
    checking if the C compiler supports "-m64"... yes
    checking if the C++ compiler supports "-m64"... yes
    checking if both compilers support "-m64"... yes
    checking if we should generate debug symbols... true
    checking if we should zip debug-info files... yes
    checking what type of native debug symbols to use (this will override previous settings)... not specified
    configure: --with-native-debug-symbols not specified. Using values from --disable-debug-symbols and --disable-zip-debug-info
    checking what is not needed on Linux?... pulse
    checking for X... libraries , headers 
    checking for gethostbyname... yes
    checking for connect... yes
    checking for remove... yes
    checking for shmat... yes
    checking for IceConnectionNumber in -lICE... yes
    checking for X11/extensions/shape.h... yes
    checking for X11/extensions/Xrender.h... yes
    checking for X11/extensions/XTest.h... yes
    checking for X11/Intrinsic.h... yes
    checking cups/cups.h usability... yes
    checking cups/cups.h presence... yes
    checking for cups/cups.h... yes
    checking cups/ppd.h usability... yes
    checking cups/ppd.h presence... yes
    checking for cups/ppd.h... yes
    checking for FREETYPE... yes
    checking for freetype... yes (using pkg-config)
    checking if we can compile and link with freetype... yes
    checking if we should bundle freetype... no
    checking for ALSA... yes
    checking for main in -ljpeg... no
    configure: Will use jpeg decoder bundled with the OpenJDK source
    checking for which giflib to use... bundled
    checking for compress in -lz... yes
    checking for which zlib to use... bundled
    checking for cos in -lm... yes
    checking for dlopen in -ldl... yes
    checking if dynamic link of stdc++ is possible... yes
    checking if static link of stdc++ is possible... yes
    checking how to link with libstdc++... static
    checking if elliptic curve crypto implementation is present... yes
    checking for number of cores... 4
    checking for memory size... 3933 MB
    checking for appropriate number of jobs to run in parallel... 3
    checking whether to use sjavac... no
    checking that precompiled headers work... yes
    checking is ccache enabled... no
    checking if build directory is on local disk... yes
    configure: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/config.status
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/spec.gmk
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/hotspot-spec.gmk
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/bootcycle-spec.gmk
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/compare.sh
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/spec.sh
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/Makefile
    config.status: creating /home/gap/jdk8u/build/linux-x86_64-normal-server-release/config.h
    config.status: /home/gap/jdk8u/build/linux-x86_64-normal-server-release/config.h is unchanged
    
    ====================================================
    A new configuration has been successfully created in
    /home/gap/jdk8u/build/linux-x86_64-normal-server-release
    using configure arguments '--with-target-bits=64'.
    
    Configuration summary:
    * Debug level:    release
    * JDK variant:    normal
    * JVM variants:   server
    * OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
    
    Tools summary:
    * Boot JDK:       java version "1.7.0_95" OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-3) OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)  (at /usr/lib/jvm/java-7-openjdk-amd64)
    * Toolchain:      gcc (GNU Compiler Collection)
    * C Compiler:     Version 5.4.0 (at /usr/bin/gcc)
    * C++ Compiler:   Version 5.4.0 (at /usr/bin/g++)
    
    Build performance summary:
    * Cores to use:   3
    * Memory limit:   3933 MB
    
    WARNING: You have old-style ALT_ environment variables set.
    These are not respected, and will be ignored. It is recommended
    that you clean your environment. The following variables are set:
    ALT_OUTPUTDIR=/home/gap/build
    
    WARNING: The result of this configuration has overridden an older
    configuration. You *should* run 'make clean' to make sure you get a
    proper build. Failure to do so might result in strange build problems.
    
    root@ubuntu:/home/gap/jdk8u# make
    
    WARNING: You have the following ALT_ variables set:
    ALT_OUTPUTDIR=/home/gap/build
    ALT_ variables are deprecated and will be ignored. Please clean your environment.
    
    Building OpenJDK for target 'default' in configuration 'linux-x86_64-normal-server-release'
    
    ## Starting langtools
    /bin/sh: 1: cd: can't cd to /home/gap/jdk8u/langtools/make
    /home/gap/jdk8u//make/Main.gmk:84: recipe for target 'langtools-only' failed
    make: *** [langtools-only] Error 2
    

    还是报这个错。没关系,是不是,我没以看懂,上面的提示。语言工具,难道是gcc没有搞好。

    root@ubuntu:/home/gap/jdk8u# gcc --version
    gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    想不别的方法了。返工。

    找报错的原因,在网上找了一堆。

    可能是。jdk8版本太老了,但是你系统又比较新(很多工具,例如make也是最新的),导致很多不匹配。解决办法换成最新版本的jdk8吧。

    大返工。搞不定了。。。。

  • 相关阅读:
    vsftp
    数据类型
    第三篇:表相关操作
    第二篇:库相关操作
    第一篇: 初识数据库
    五 python并发编程之IO模型
    四 python并发编程之协程
    Python GIL
    三 python并发编程之多线程-重点
    三 python并发编程之多线程-理论
  • 原文地址:https://www.cnblogs.com/ncepu/p/13694924.html
Copyright © 2020-2023  润新知