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.

Reply via email to