problem with latest updates

Stephen Bannasch stephen.bannasch at deanbrook.org
Mon Mar 7 12:59:14 PST 2011


Sam Pullara identified part of the problem: Darwin doesn't have ldd -- it also doesn't have readelf

These changes fix part of the problem:

[jdk]$ hg diff
diff --git a/make/common/shared/Defs-utils.gmk b/make/common/shared/Defs-utils.gmk
--- a/make/common/shared/Defs-utils.gmk
+++ b/make/common/shared/Defs-utils.gmk
@@ -233,6 +233,8 @@
      NAWK       = $(UTILS_USR_BIN_PATH)awk
      UNZIPSFX   = $(UTILS_USR_BIN_PATH)unzipsfx
      ZIPEXE     = $(UTILS_USR_BIN_PATH)zip
+    LDD        = $(UTILS_USR_BIN_PATH)otool -L
+    READELF    = $(UTILS_USR_BIN_PATH)otool -l
    else
      UNZIP      = $(UTILS_DEVTOOL_PATH)unzip
    endif


But nm on the mac doesn't use the options '-D' or '--defined-only

So lines 180-2 in make/common/shared/Defs-bsd.gmk b/make/common/shared/Defs-bsd.gmk
don't work:

if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then
   $(ECHO) "WARNING: File was not built with a mapfile: $1"; \
fi && \

These hard-coded changes for Darwin fix the problem:

diff --git a/make/common/shared/Defs-bsd.gmk b/make/common/shared/Defs-bsd.gmk
--- a/make/common/shared/Defs-bsd.gmk
+++ b/make/common/shared/Defs-bsd.gmk
@@ -180,7 +180,7 @@
  define binary_file_verification # binary_file
  ( \
    $(ECHO) "Checking for mapfile use in: $1" && \
-  if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
+  if [ "`$(NM) -gU $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
      $(ECHO) "WARNING: File was not built with a mapfile: $1"; \
    fi && \
    $(ECHO) "Library loads for: $1" && \


But the build fails shortly after checking for runpaths in libjsig.dylib

/bin/cp /Users/stephen/dev/java/src/bsd/build/bsd-amd64/hotspot/import/jre/lib/amd64/libjsig.dylib 
/Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib
Checking for mapfile use in: /Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib
WARNING: File was not built with a mapfile: /Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib
Library loads for: /Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib
/Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib:
	libjsig.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 625.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
RUNPATH for: /Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib
make[4]: *** [/Users/stephen/dev/java/src/bsd/build/bsd-amd64/lib/amd64/libjsig.dylib] Error 1
make[3]: *** [all] Error 1
make[2]: *** [all] Error 1
make[1]: *** [jdk-build] Error 2



More information about the bsd-port-dev mailing list