I believe I fixed my problem by changing "-soname" to "- 
dylib_install_name -Wl" in the following files:

lib/Makefile
base/Makefile
lac/Makefile
deal.II/Makefile

I found this as a note on an Apple developer website from 2003:

"The -soname is what is biting you, since it's ELF only,
therefore non portable.  AFAICT, the equivalent on MacOS X is
-dylib_install_name, but without an = in there"

I don't know what exactly all of this is talking about, but I thought  
I would pass my experience onwards.  Also, I am using custom mpi  
compilers, openmpi 1.2.7, compiled with the gcc distributed by apple  
and gfortran from the gnu wiki.

Jon



On Oct 9, 2008, at 12:13 PM, Jonathan Pitt wrote:

> Hello,
>
> In revision 17150, I get the following linking error on my Intel Mac
> running 10.5:
>
> cd /Users/jpitt/prog/lib/deal/lib && /usr/bin/make  external-links
> ======================debug============= Linking library:
> libpetscall.g.dylib
> ld: unknown option: -soname
> collect2: ld returned 1 exit status
> make[1]: *** [libpetscall.g.dylib] Error 1
> make: *** [deps] Error 2
>
> I noticed that the -soname option appears throughout lib/Makefile.  If
> I backup to revision 17100, everything is fine.  Do you think there is
> some problem with my configuration?  I am using the line:
>
> /configure CC=mpicc CXX=mpicxx F77=mpif77 FC=mpif90 --with-umfpack --
> with-blas --with-lapack --enable-multithreading --with-multithreading
>
> I have attached the configuration out put below as well.
>
>
> Best Regards,
>
> Jon Pitt
>
>
>
> [12:05:[EMAIL PROTECTED]:~/prog/lib/deal] ./configure CC=mpicc
> CXX=mpicxx F77=mpif77 FC=mpif90 --with-umfpack --with-blas --with-
> lapack --enable-multithreading --with-multithreading
> Configuring deal.II version 6.2.pre
> checking build system type... i386-apple-darwin9.5.0
> checking host system type... i386-apple-darwin9.5.0
> checking target system type... i386-apple-darwin9.5.0
>
> ---------------- configuring C/C++ compilers ----------------
> checking for gcc... mpicc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether mpicc accepts -g... yes
> checking for mpicc option to accept ISO C89... none needed
> checking for mpicc... /Users/jpitt/prog/lib/mpi/bin/mpicc
> checking whether we are using the GNU C++ compiler... yes
> checking whether mpicxx accepts -g... yes
> checking for mpicxx... /Users/jpitt/prog/lib/mpi/bin/mpicxx
> C++ compiler is gcc4.0 (subversion gcc4.0.1)
> checking if the compiler is built for MPI... yes
> checking whether qualifiers in return types lead to a warning... no
> checking for std::advance warning... no
> checking whether we can use -Wno-long-double... yes
> checking whether -ggdb works... yes
> C compiler is gcc-4.0
> checking whether compiler understands option -Wl,-rpath... yes
> checking for platform specific multi-threading defines... not  
> necessary
> checking for only partly bracketed mutex initializer... no
> checking for posix thread functions... ok
> checking for posix thread mutex functions... ok
> checking for posix thread condition variable functions... ok
> checking for posix thread barrier functions... not found. barriers
> will not be supported
> checking whether AssertThrow works with debug flags... yes
> checking whether AssertThrow works with optimized flags... yes
> checking for local computed template typedef bug... no
> checking for partially specialized template access control bug... no
> checking for template member operator instantiation bug... no
> checking for 1st template friend in namespace bug... no
> checking for 2nd template friend in namespace bug... no
> checking for template specialization friend bug... no
> checking for bug with implementing pure functions... yes. using
> workaround
> checking for template template typedef bug... no
> checking for address of template template function bug... no
> checking for nested classes are implicit friends bug... no
> checking for nested template class friends bug... yes. using  
> workaround
> checking for member variable specialization bug... no
> checking for template member function specialization bug... no
> checking for long double optimization bug... no
> checking for anonymous namespace and name mangling bug... no
> checking for anonymous namespace and weak linkage bug... yes
> checking for bogus warning with anonymous namespaces... no
> checking for weak linkage bug (Apple gcc3.3) ... no
> checking for SFINAE bug... no
> checking for template operator disambiguation bug... no
> checking for array assignment in conditional bug... no
> checking for explicit template constructor bug... no
> checking for warning bug with type qualifiers... no
> checking for problem with -Wsynth and std::complex... no
> checking for __PRETTY_FUNCTION__... yes
> checking for std::iterator class... yes
> checking for std::i/ostringstream classes... yes
> checking for std::numeric_limits classes... yes
> checking for <ostream> header... yes
> checking for <iosfwd> header... yes
> checking for __builtin_expect... yes
> checking for __verbose_terminate_handler... yes
> checking for glibc-like stacktrace information... yes
> checking whether compiler accepts -rdynamic... yes
> checking for libstdc++ demangler... yes
> checking for minimal std::vector<T> capacity... 1
> checking for minimal std::vector<bool> capacity... 32
> checking for exception specifications on abort()... none
> checking whether getrusage is properly declared... yes
> checking whether isnan is declared with debug flags... no.
> checking whether isnan is declared with optimized flags... no.
> checking for std::isfinite... yes
> checking for rand_r... no
> checking for quad vs. quad_t define... no
> checking for definitions of error codes in errno.h... yes
> checking for gethostname... yes
> checking for getpid... yes
> checking how to run the C++ preprocessor... /Users/jpitt/prog/lib/mpi/
> bin/mpicxx -E
> checking for grep that handles long lines and -e... /usr/bin/grep
> checking for egrep... /usr/bin/grep -E
> checking for ANSI C header files... rm: conftest.dSYM: is a directory
> rm: conftest.dSYM: is a directory
> yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking sys/syscall.h usability... yes
> checking sys/syscall.h presence... yes
> checking for sys/syscall.h... yes
> checking for bad socket functions/FPU interaction... no
> checking boost/shared_ptr.hpp usability... yes
> checking boost/shared_ptr.hpp presence... yes
> checking for boost/shared_ptr.hpp... yes
> checking boost/type_traits.hpp usability... yes
> checking boost/type_traits.hpp presence... yes
> checking for boost/type_traits.hpp... yes
> checking boost/tuple/tuple.hpp usability... yes
> checking boost/tuple/tuple.hpp presence... yes
> checking for boost/tuple/tuple.hpp... yes
> checking for boost::shared_ptr assignment operator= template buglet...
> no
>
> ----------------- configuring F77 compilers -----------------
> checking for gfortran... /usr/local/bin/gfortran
> F77 compiler is gcc-4.4
> checking for e_wsfe in -lg2c... no
> checking for _gfortran_allocate in -lgfortran... no
> checking for _gfortran_st_write_done in -lgfortran... no
>
> -------------- configuring shared/static libs ---------------
> checking for ar... ar
> checking for ar... /usr/bin/ar
> checking for ranlib... ranlib
> checking for ranlib... /usr/bin/ranlib
>
> ---------------- configuring additional libs ----------------
> checking for PETSc library directory... /Users/jpitt/prog/lib/petsc
> checking for PETSc version... 2.3.3
> checking for PETSc library architecture... darwin9.5.0-cxx-opt
> checking for PETSc libmpiuni library...
> checking for Trilinos library directory... /Users/jpitt/prog/lib/
> trilinos
> checking whether Trilinos uses shared libraries... yes
> checking whether Trilinos uses static libraries... yes
> checking -framework Accelerate... yes
> checking for HSL subroutines... none found
> checking for crc32 in -lz... yes
> checking netcdfcpp.h usability... no
> checking netcdfcpp.h presence... no
> checking for netcdfcpp.h... no
> checking for Metis library directory... /Users/jpitt/prog/lib/metis
> checking for Metis version... METIS 4.0.1     Mon Nov 30 10:27:29 CST 1998
> checking UmfPack library... using included version
> checking for dgbsv_ in -llapack... yes
> checking for daxpy_... yes
> checking for dgemv_... yes
> checking for sgemv_... yes
> checking for dgeev_... yes
> checking for sgeev_... yes
> checking for dgeevx_... yes
> checking for sgeevx_... yes
> checking for dgesvd_... yes
> checking for sgesvd_... yes
> checking for dgetrf_... yes
> checking for sgetrf_... yes
> checking for dgetrs_... yes
> checking for sgetrs_... yes
> checking for dstev_... yes
> checking for sstev_... yes
>
> ------------------ checking compiler flags ------------------
> checking for CPU to optimize for... none given or not recognized
> checking for consistency of CXXFLAGSG flags... yes
> checking for consistency of CXXFLAGSO flags... yes
>
> ---------------- configuring other programs -----------------
> checking for doxygen... no
> checking for dot... no
> checking for perl... /usr/bin/perl
>
> --------------------- generating output ---------------------
> configure: creating ./config.status
> config.status: creating common/Make.global_options
> config.status: creating common/Makefile.template
> config.status: creating common/scripts/make_dependencies.pl
> config.status: creating Version
> config.status: creating doc/Makefile
> config.status: creating doc/doxygen/Makefile
> config.status: creating doc/doxygen/options.dox
> config.status: creating doc/doxygen/options.136
> config.status: creating doc/doxygen/header.html
> config.status: creating doc/doxygen/header.136
> config.status: creating doc/doxygen/header.tex
> config.status: creating common/template-arguments
> config.status: creating base/include/base/config.h
> === configuring in contrib (/Users/jpitt/prog/lib/deal/contrib)
> configure: running /bin/sh ./configure '--prefix=/Users/jpitt/prog/ 
> lib/
> deal'  'CC=mpicc' 'CXX=mpicxx' 'F77=mpif77' 'FC=mpif90' '--with-
> umfpack' '--with-blas' '--with-lapack' '--enable-multithreading' '--
> with-multithreading' --cache-file=/dev/null --srcdir=.
>
> ---------------- configuring contrib subdir -----------------
> configure: creating ./config.status
> config.status: creating Makefile
> === configuring in utilities (/Users/jpitt/prog/lib/deal/contrib/
> utilities)
> configure: running /bin/sh ./configure '--prefix=/Users/jpitt/prog/ 
> lib/
> deal'  'CC=mpicc' 'CXX=mpicxx' 'F77=mpif77' 'FC=mpif90' '--with-
> umfpack' '--with-blas' '--with-lapack' '--enable-multithreading' '--
> with-multithreading' --cache-file=/dev/null --srcdir=.
> configure: creating ./config.status
> config.status: creating Makefile
>
>
> -------------------------------------------------------------
>
>      The  deal.II  library is now configured. In order to
>      compile it and to generate the  documentation,  just
>      call 'make' without arguments for a list of options.
>      For more information, see the doc/readme.html file.
>
> -------------------------------------------------------------
>
>      Please add the line
>         export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Users/jpitt/prog/
> lib/deal/lib
>      to your .bash_profile file so that OSX will be
>      able to find the deal.II shared libraries when
>      executing your programs.
>      WARNING: During configuration, no version of the doxygen
>      WARNING: documentation generation program could be found.
>      WARNING: You can still use the library, but you won't be
>      WARNING: able to generate API documentation locally on
>      WARNING: your machine. It is available for download,
>      WARNING: however.
>
>
> _______________________________________________
>


_______________________________________________

Reply via email to