Your approach really helps. I turned on verbose mode and found that the build failed due to some warnings of "warning: deprecated conversion from string constant to 'char*'"and my gcc 4.2 treated these warnings as errors. I followed the solution in http://weblogs.java.net/blog/simonis/.
Following is the solution of the post: "Internally, SUN apparently still uses gcc 3.2.2 to build the JDK and with gcc 3.2.2 there seem to be no warnings during the build so they decided to use the -Werror option on Linux which instructs gcc to treat every compiler warning as error. If you however want to build with a gcc version higher than 3.2.2 (and you'll probably want to do this on a newer Linux distribution) you'll either have to use precompiled headers ( USE_PRECOMPILED_HEADER=true) or comment the line WARNINGS_ARE_ERRORS = -Werror in the file hotspot/build/linux/makefiles/gcc.make<http://hg.openjdk.java.net/jdk7/jdk7//hotspot/raw-file/jdk7-b24/build/linux/makefiles/gcc.make>(see Bug 6469784 <http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469784>)." Now it seems that the problem was gone. Thanks! On 1/30/08, Keith McGuigan <[EMAIL PROTECTED]> wrote: > > > Feng- > > As others have said, make sure you have the right sources. If this > happens again, though, you may have to do some debugging in the build. > The referenced symbol ought to be defined in the verifier.o file. > Either it's not defined in there, or that file is not getting linked > into libjvm.so. Not sure exactly how to turn on verbose mode from the > command line, but in the Hotspot makefiles if VERBOSE=y is set, it will > show the commands as they are executed. Use that and take a look at the > object files with 'nm' (maybe combined with c++filt) to try to track > down where exactly the problem is. > > You'll probably want to do a clean build too, just to make sure it's not > a problem with old or corrupted object files. > > -- > - Keith > > Feng Xian wrote: > > Hi, I downloaded a most recent version of OpenJDK and tried to install > > it on a 32-bit Linux platform. But the build failed with an error of > > > "/home/dli/openjdk7/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product/libjvm.so: > > undefined reference to `Verifier::verify(instanceKlassHandle, > > Verifier::Mode, Thread*)". > > > > Any help will be appreciated. Details of error message and "make sanity" > > output are followed: > > > > =================Screen snapshot ============================= > > make[5]: Entering directory > > > `/home/dli/openjdk7/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product' > > { \ > > echo Linking launcher...; \ > > \ > > gcc -m32 -march=i586 -Xlinker -O1 -m32 -march=i586 -export-dynamic > > -L `pwd` -o gamma launcher.o -ljvm -lm -ldl -lpthread; \ > > \ > > } > > Linking launcher... > > > /home/dli/openjdk7/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product/libjvm.so: > > undefined reference to `Verifier::verify(instanceKlassHandle, > > Verifier::Mode, Thread*)' > > collect2: ld returned 1 exit status > > make[5]: *** [gamma] Error 1 > > make[5]: Leaving directory > > > `/home/dli/openjdk7/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product' > > make[4]: *** [the_vm] Error 2 > > make[4]: Leaving directory > > > `/home/dli/openjdk7/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product' > > make[3]: *** [product] Error 2 > > make[3]: Leaving directory > > `/home/dli/openjdk7/build/linux-i586/hotspot/outputdir' > > make[2]: *** [generic_build2] Error 2 > > make[2]: Leaving directory `/home/dli/openjdk7/hotspot/make' > > make[1]: *** [product] Error 2 > > make[1]: Leaving directory `/home/dli/openjdk7/hotspot/make' > > make: *** [hotspot-build] Error 2 > > ============================================= > > > > Below is "make sanity" message. > > > > ===============Output of make sanity============== > > (cd ./deploy/make && \ > > make sanity JDK_TOPDIR=/home/dli/openjdk7/jdk > > JDK_MAKE_SHARED_DIR=/home/dli/openjdk7/jdk/make/common/shared > > EXTERNALSANITYCONTROL=true TARGET_CLASS_VERSION=5 > > MILESTONE=Frame-Pointer BUILD_NUMBER=Dli JDK_BUILD_NUMBER=Dli > > FULL_VERSION=1.7.0-Frame-Pointer-Dli PREVIOUS_JDK_VERSION=1.6.0 > > JDK_VERSION=1.7.0 JDK_MKTG_VERSION=7 JDK_MAJOR_VERSION=1 > > JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0 ARCH_DATA_MODEL=32 > > COOKED_BUILD_NUMBER=Dli ANT_HOME="/home/dli/ant" > > FINDBUGS_HOME="/home/dli/findbugs-1.3.0" > > ALT_OUTPUTDIR=/home/dli/openjdk7/build/linux-i586 ) > > make[1]: Entering directory `/home/dli/openjdk7/deploy/make' > > make[1]: Leaving directory `/home/dli/openjdk7/deploy/make' > > make[1]: Entering directory `/home/dli/openjdk7/jdk/make' > > make[1]: Leaving directory `/home/dli/openjdk7/jdk/make' > > > > Build Machine Information: > > build machine = terryxian.unl.edu <http://terryxian.unl.edu> > > > > Build Directory Structure: > > CWD = /home/dli/openjdk7 > > TOPDIR = . > > CONTROL_TOPDIR = . > > LANGTOOLS_TOPDIR = ./langtools > > JAXP_TOPDIR = ./jaxp > > JAXWS_TOPDIR = ./jaxws > > CORBA_TOPDIR = ./corba > > HOTSPOT_TOPDIR = ./hotspot > > JDK_TOPDIR = ./jdk > > DEPLOY_TOPDIR = ./deploy > > INSTALL_TOPDIR = ./install > > > > Build Directives: > > BUILD_LANGTOOLS = false > > BUILD_JAXP = true > > BUILD_JAXWS = true > > BUILD_CORBA = true > > BUILD_HOTSPOT = true > > BUILD_JDK = true > > BUILD_DEPLOY = true > > BUILD_INSTALL = false > > > > Hotspot Settings: > > HOTSPOT_BUILD_JOBS = > > HOTSPOT_OUTPUTDIR = > > /home/dli/openjdk7/build/linux-i586/hotspot/outputdir > > HOTSPOT_EXPORT_PATH = > > /home/dli/openjdk7/build/linux-i586/hotspot/import > > > > Bootstrap Settings: > > BOOTDIR = /home/dli/jdk1.6.0_03 > > ALT_BOOTDIR = /home/dli/jdk1.6.0_03 > > BOOT_VER = 1.6 [requires at least 1.5] > > OUTPUTDIR = /home/dli/openjdk7/build/linux-i586 > > ALT_OUTPUTDIR = /home/dli/openjdk7/build/linux-i586 > > ABS_OUTPUTDIR = /home/dli/openjdk7/build/linux-i586 > > > > Build Tool Settings: > > SLASH_JAVA = /NOT-SET > > ALT_SLASH_JAVA = > > VARIANT = OPT > > JDK_DEVTOOLS_DIR = /home/dli/openjdk7 > > ALT_JDK_DEVTOOLS_DIR = /home/dli/openjdk7 > > ANT_HOME = /home/dli/ant > > FINDBUGS_HOME = /home/dli/findbugs-1.3.0 > > UNIXCOMMAND_PATH = /bin/ > > ALT_UNIXCOMMAND_PATH = > > COMPILER_PATH = /usr/bin/ > > ALT_COMPILER_PATH = > > DEVTOOLS_PATH = /usr/bin/ > > ALT_DEVTOOLS_PATH = /usr/bin > > UNIXCCS_PATH = /usr/ccs/bin/ > > ALT_UNIXCCS_PATH = > > USRBIN_PATH = /usr/bin/ > > ALT_USRBIN_PATH = > > GCC29_COMPILER_PATH = /home/dli/openjdk7/linux/gcc29/usr/ > > ALT_GCC29_COMPILER_PATH = > > COMPILER_NAME = GCC > > COMPILER_VERSION = > > CC_VER = 3.4 [requires at least 3.2] > > ZIP_VER = 2.3 [requires at least 2.2] > > UNZIP_VER = 5.51 [requires at least 5.12] > > ANT_VER = 1.7 [requires at least 1.6.3] > > FINDBUGS_VER = 1.3 [requires at least 1.1] > > TEMPDIR = /home/dli/openjdk7/build/linux-i586/tmp > > > > Build Directives: > > OPENJDK = > > USE_HOTSPOT_INTERPRETER_MODE = > > PEDANTIC = > > DEV_ONLY = true > > NO_DOCS = > > NO_IMAGES = > > TOOLS_ONLY = > > INSANE = true > > COMPILE_APPROACH = parallel > > PARALLEL_COMPILE_JOBS = 2 > > ALT_PARALLEL_COMPILE_JOBS = > > FASTDEBUG = > > COMPILER_WARNINGS_FATAL = false > > COMPILER_WARNING_LEVEL = > > INCREMENTAL_BUILD = false > > CC_HIGHEST_OPT = -O3 > > CC_HIGHER_OPT = -O3 > > CC_LOWER_OPT = -O2 > > CXXFLAGS = -O2 -fPIC -DCC_NOEX -W -Wall -Wno-unused > > -Wno-parentheses -fno-omit-frame-pointer -D_LITTLE_ENDIAN > > CFLAGS = -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused > > -Wno-parentheses -fno-omit-frame-pointer -D_LITTLE_ENDIAN > > BOOT_JAVA_CMD = /home/dli/jdk1.6.0_03/bin/java -client -Xmx344m > > -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m > > BOOT_JAVAC_CMD = /home/dli/jdk1.6.0_03/bin/javac > > -J-XX:ThreadStackSize=768 -J-client -J-Xmx344m -J-Xms128m > > -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii > > BOOT_JAR_CMD = /home/dli/jdk1.6.0_03/bin/jar > > BOOT_JARSIGNER_CMD = /home/dli/jdk1.6.0_03/bin/jarsigner > > JAVAC_CMD = /home/dli/jdk1.6.0_03/bin/javac -J-XX:ThreadStackSize=768 > > -J-client -J-Xmx344m -J-Xms128m -J-XX:PermSize=32m > > -J-XX:MaxPermSize=160m -source 1.5 -target 5 -encoding ascii > > -Xbootclasspath:/home/dli/openjdk7/build/linux-i586/classes > > JAVAH_CMD = /home/dli/jdk1.6.0_03/bin/javah -bootclasspath > > /home/dli/openjdk7/build/linux-i586/classes > > JAVADOC_CMD = /home/dli/jdk1.6.0_03/bin/javadoc -J-client -J-Xmx344m > > -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m > > > > Build Platform Settings: > > USER = dli > > PLATFORM = linux > > ARCH = i586 > > LIBARCH = i386 > > ARCH_FAMILY = i586 > > ARCH_DATA_MODEL = 32 > > ARCHPROP = i386 > > LINUX_VERSION = 3 (Heidelberg) > > ALSA_VERSION = 1.0.6 > > OS_VERSION = 2.6.17 [requires at least 2.4.9-e.3] > > OS_NAME = linux > > TEMP_FREE_SPACE = 2507836 > > FREE_SPACE = 2507836 > > MB_OF_MEMORY = 472 > > > > GNU Make Settings: > > MAKE = make > > MAKE_VER = 3.80 [requires at least 3.78] > > MAKECMDGOALS = sanity > > MAKEFLAGS = w > > SHELL = /bin/sh > > > > Target Build Versions: > > JDK_VERSION = 1.7.0 > > MILESTONE = Frame-Pointer > > RELEASE = 1.7.0-Frame-Pointer > > FULL_VERSION = 1.7.0-Frame-Pointer-Dli > > BUILD_NUMBER = Dli > > > > External File/Binary Locations: > > USRJDKINSTANCES_PATH = /opt/java > > BUILD_JDK_IMPORT_PATH = /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries > > ALT_BUILD_JDK_IMPORT_PATH = > > JDK_IMPORT_PATH = /home/dli/jdk1.6.0_03 > > ALT_JDK_IMPORT_PATH = /home/dli/jdk1.6.0_03 > > LANGTOOLS_DIST = > > ALT_LANGTOOLS_DIST = > > CORBA_DIST = /home/dli/openjdk7/build/linux-i586/corba/dist > > ALT_CORBA_DIST = /home/dli/openjdk7/build/linux-i586/corba/dist > > JAXP_DIST = /home/dli/openjdk7/build/linux-i586/jaxp/dist > > ALT_JAXP_DIST = /home/dli/openjdk7/build/linux-i586/jaxp/dist > > JAXWS_DIST = /home/dli/openjdk7/build/linux-i586/jaxws/dist > > ALT_JAXWS_DIST = /home/dli/openjdk7/build/linux-i586/jaxws/dist > > HOTSPOT_DOCS_IMPORT_PATH = /NO_DOCS_DIR > > ALT_HOTSPOT_DOCS_IMPORT_PATH = > > HOTSPOT_IMPORT_PATH = > /home/dli/openjdk7/build/linux-i586/hotspot/import > > ALT_HOTSPOT_IMPORT_PATH = > > /home/dli/openjdk7/build/linux-i586/hotspot/import > > HOTSPOT_CLIENT_PATH = > > /home/dli/openjdk7/build/linux-i586/hotspot/import/jre/lib/i386/client > > ALT_HOTSPOT_CLIENT_PATH = > > HOTSPOT_SERVER_PATH = > > /home/dli/openjdk7/build/linux-i586/hotspot/import/jre/lib/i386/server > > ALT_HOTSPOT_SERVER_PATH = > > CACERTS_FILE = /home/dli/openjdk7/jdk/src/share/lib/security/cacerts > > ALT_CACERTS_FILE = > > MOZILLA_HEADERS_PATH = /home/dli/openjdk7/share/plugin > > ALT_MOZILLA_HEADERS_PATH = /home/dli/openjdk7/share/plugin > > CUPS_HEADERS_PATH = /usr/include > > ALT_CUPS_HEADERS_PATH = > > > > OPENJDK Export Binary Plug Settings: > > PLUG_EXPORT_DIRNAME = > > PLUG_LIBRARY_NAMES = > > > > > > WARNING: You are building in 'INSANE' mode. You > > should not use this mode, and in fact, > > it may be removed at any time. If you > > have build problems as a result of using > > INSANE mode, then you should not expect > > assistance from anyone with the problems > > or consequences you experience. > > > > WARNING: You are not building the LANGTOOLS sources. > > Lang tools (javac) will be obtained from > > the location set in ALT_JDK_IMPORT_PATH. > > > > WARNING: You are not building the INSTALL sources. > > This will result in a development-only > > build of the JDK, lacking the installation bundles > > > > WARNING: Your build environment has the variable DEV_ONLY > > defined. This will result in a development-only > > build of the JDK, lacking the documentation > > build and installation bundles. > > > > WARNING: You are building in 'INSANE' mode. You > > should not use this mode, and in fact, > > it may be removed at any time. If you > > have build problems as a result of using > > INSANE mode, then you should not expect > > assistance from anyone with the problems > > or consequences you experience. > > > > WARNING: This machine appears to only have 472Mb of physical memory, > > builds on this machine could be slow. > > > > WARNING: The official linux builds use OS version 2.4.9-e.3. > > You appear to be using OS version 2.6.17. > > > > WARNING: The build is being done on Linux 3 (Heidelberg). > > The official linux builds use Linux Advanced Server, > > specifically Linux Advanced Server release 2.1AS. > > The version found was '2.6.17'. > > > > WARNING: The linux compiler is not version 3.2 > > Specifically the GCC compiler. > > You appear to be using compiler version: 3.4 > > The compiler was obtained from the following location: > > /usr/bin/ > > > > WARNING: You are building in 'INSANE' mode. You > > should not use this mode, and in fact, > > it may be removed at any time. If you > > have build problems as a result of using > > INSANE mode, then you should not expect > > assistance from anyone with the problems > > or consequences you experience. > > > > WARNING: The BUILD_NUMBER needs to contain b[0-9][0-9]*. Currently > > BUILD_NUMBER=Dli. > > This has been known to cause build failures. > > > > WARNING: This machine appears to only have 472Mb of physical memory, > > builds on this machine could be slow. > > > > WARNING: The official linux builds use OS version 2.4.9-e.3. > > You appear to be using OS version 2.6.17. > > > > WARNING: The build is being done on Linux 3 (Heidelberg). > > The official linux builds use Linux Advanced Server, > > specifically Linux Advanced Server release 2.1AS. > > The version found was '2.6.17'. > > > > WARNING: The linux compiler is not version 3.2 > > Specifically the GCC compiler. > > You appear to be using compiler version: 3.4 > > The compiler was obtained from the following location: > > /usr/bin/ > > > > INSANE mode requested. > > Sanity will not force a build termination, even with errors. > > -- Addr: 1025N, 23rd str, APT 33, Lincoln, NE, 68503 Phone: (402)310-9826 WWW: cse.unl.edu/~fxian
