make so fails on Mac OS X

View: New views
1 Messages — Rating Filter:   Alert me  

make so fails on Mac OS X

by Matt Broughton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I checked out revision 10257 with svn and tried to do a 'make so'
under Mac OS X.  The 'make so' fails with undefined symbols.  This is
the case for building x86_64 under OS X 10.6.1 and ppc under OS X
10.4.11.

A standard 'make' works fine.

I am not sure if I missed something in patching the unix-dll.mak file
or if there is something else going on.  Any help would be
appreciated.


I patched the unix-dll.mak as follows:
--- gs/base/unix-dll.mak.orig 2009-11-02 11:46:37.000000000 -0600
+++ gs/base/unix-dll.mak 2009-11-02 11:50:33.000000000 -0600
@@ -52,13 +52,13 @@
  LDFLAGS_SO=-shared -Wl,-soname=$(GS_SONAME_MAJOR)

  # MacOS X
-#GS_SOEXT=dylib
-#GS_SONAME=$(GS_SONAME_BASE).$(GS_SOEXT)
-#GS_SONAME_MAJOR=$(GS_SONAME_BASE).$(GS_VERSION_MAJOR).$(GS_SOEXT)
-#GS_SONAME_MAJOR_MINOR=$(GS_SONAME_BASE).$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR).$(GS_SOEXT)
-#LDFLAGS_SO=-dynamiclib -flat_namespace
-#LDFLAGS_SO=-dynamiclib -install_name $(GS_SONAME_MAJOR_MINOR)
-#LDFLAGS_SO=-dynamiclib -install_name $(FRAMEWORK_NAME)
+GS_SOEXT=dylib
+GS_SONAME=$(GS_SONAME_BASE).$(GS_SOEXT)
+GS_SONAME_MAJOR=$(GS_SONAME_BASE).$(GS_VERSION_MAJOR).$(GS_SOEXT)
+GS_SONAME_MAJOR_MINOR=$(GS_SONAME_BASE).$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR).$(GS_SOEXT)
+LDFLAGS_SO=-dynamiclib -flat_namespace
+LDFLAGS_SO=-dynamiclib -install_name $(GS_SONAME_MAJOR_MINOR)
+LDFLAGS_SO=-dynamiclib -install_name $(FRAMEWORK_NAME)

  GS_SO=$(BINDIR)/$(GS_SONAME)
  GS_SO_MAJOR=$(BINDIR)/$(GS_SONAME_MAJOR)


I used the following autogen command:
./autogen.sh --without-x --enable-cups --with-ijs --with-drivers=ALL

With OS X 10.6.1, the failure is:
Total %rom% structure size is 7397508 bytes.
gcc  -DHAVE_MKSTEMP -DHAVE_HYPOT    -O2  -Wall -Wstrict-prototypes
-Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings
-Wno-strict-aliasing -Wdeclaration-after-statement -fno-builtin
-fno-common -DHAVE_STDINT_H -DGX_COLOR_INDEX_TYPE="unsigned long int"
-I./obj/../soobj -I./base  -o ./obj/../soobj/gsromfs1.o -c
./obj/../soobj/gsromfs1.c
./obj/../soobj/echogs -w ./obj/../soobj/ldt.tr -n - gcc -dynamiclib
-install_name  -o ./bin/../sobin/libgs.8.71.dylib
./obj/../soobj/echogs -a ./obj/../soobj/ldt.tr -n -s
./obj/../soobj/gsromfs1.o ./obj/../soobj/gs.o -s
cat ./obj/../soobj/ld.tr >>./obj/../soobj/ldt.tr
./obj/../soobj/echogs -a ./obj/../soobj/ldt.tr -s - -ldl -lm  -liconv
-lstdc++   -lpthread -lm
if [ x != x ]; then LD_RUN_PATH=; export LD_RUN_PATH; fi; \
        XCFLAGS= XINCLUDE= XLDFLAGS= XLIBDIRS= XLIBS= \
        FEATURE_DEVS= DEVICE_DEVS= DEVICE_DEVS1= DEVICE_DEVS2= DEVICE_DEVS3= \
        DEVICE_DEVS4= DEVICE_DEVS5= DEVICE_DEVS6= DEVICE_DEVS7= DEVICE_DEVS8= \
        DEVICE_DEVS9= DEVICE_DEVS10= DEVICE_DEVS11= DEVICE_DEVS12= \
        DEVICE_DEVS13= DEVICE_DEVS14= DEVICE_DEVS15= DEVICE_DEVS16= \
        DEVICE_DEVS17= DEVICE_DEVS18= DEVICE_DEVS19= DEVICE_DEVS20= \
        DEVICE_DEVS_EXTRA= \
        /bin/sh <./obj/../soobj/ldt.tr
Undefined symbols:
   "_gs_romfs_buildtime", referenced from:
       _romfs_file_status in gsiorom.o
   "_gs_romfs", referenced from:
       _romfs_open_file in gsiorom.o
       _romfs_file_status in gsiorom.o
       _romfs_enumerate_next in gsiorom.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [bin/../sobin/libgs.8.71.dylib] Error 1
make: *** [so] Error 2

--
Matt Broughton
Only relatives are absolute.
_______________________________________________
gs-devel mailing list
gs-devel@...
http://www.ghostscript.com/mailman/listinfo/gs-devel