On 2012-1-20 13:30 , Mark Brethen wrote:
> :info:build MACOSX_DEPLOYMENT_TARGET=10.6 /Developer/usr/bin/clang 
> -DHAVE_CONFIG_H -I. 
> -I/opt/local/var/macports/build/_Users_marbre_ports_math_reduce/reduce-with-csl/work/trunk/csl/cslbase
>   -Dfontsdir=reduce.fonts -I/opt/local/include -I/opt/local/include/freetype2 
> -I/opt/local/include   -DBINDIR=/opt/local/bin 
> -DPKGDATADIR=/opt/local/share/reduce  -pipe -O2 -arch x86_64 -isysroot 
> /Developer/SDKs/MacOSX10.6.sdk  -I/opt/local/include/freetype2 
> -I/opt/local/include -fno-strict-aliasing -O2 -Wall   -MT dyndemo.o -MD -MP 
> -MF .deps/dyndemo.Tpo -c -o dyndemo.o 
> /opt/local/var/macports/build/_Users_marbre_ports_math_reduce/reduce-with-csl/work/trunk/csl/cslbase/dyndemo.c
> :info:build mv -f .deps/dyndemo.Tpo .deps/dyndemo.Po
> :info:build MACOSX_DEPLOYMENT_TARGET=10.6 /Developer/usr/bin/clang 
> -DHAVE_CONFIG_H -I. 
> -I/opt/local/var/macports/build/_Users_marbre_ports_math_reduce/reduce-with-csl/work/trunk/csl/cslbase
>   -Dfontsdir=reduce.fonts -I/opt/local/include -I/opt/local/include/freetype2 
> -I/opt/local/include   -DBINDIR=/opt/local/bin 
> -DPKGDATADIR=/opt/local/share/reduce  -fPIC -fno-strict-aliasing -O2  
> /opt/local/var/macports/build/_Users_marbre_ports_math_reduce/reduce-with-csl/work/trunk/csl/cslbase/dynmodule.c
>   -o   dynmodule.so
> :info:build Undefined symbols for architecture x86_64:
> :info:build   "_main", referenced from:
> :info:build       start in crt1.10.6.o
> :info:build   "_variable_in_base", referenced from:
> :info:build       _callme in cc-msGlG0.o
> :info:build   "_function_in_base", referenced from:
> :info:build       _callme in cc-msGlG0.o
> :info:build ld: symbol(s) not found for architecture x86_64
> Am I missing a flag that should be included in the portfile or is this an 
> incompatibility with clang?

The linker defaults to creating an executable, which needs to have a
main(). From its name I would assume that dynmodule.so is not meant to
be an executable. If it's meant to be a dynamically loaded plugin-type
object, use -bundle. If it's meant to be a library, use -dylib. The
former would also explain the other undefined symbols, which you can
tell the linker to find at runtime (assuming they will be defined by the
program that loads the bundle) by using '-undefined dynamic_lookup'.

- Josh
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to