Juan Jose Garcia-Ripoll wrote: > It seems that in OS X, when using "gcc" to link the object files into > an executable, the flag -m64 is needed _again_ to specify that it is a > 64-bits build. This is regarding David's question in the sage-devel > group. > > Now, this is one of the reasons why ECL does not build on OS X when > compiling with CFLAGS="-m64" Since the linker needs the -m64 flag, ECL > is not capable of finding your copy of the MPIR library. > > To avoid this problem, ECL now understands an ABI=64 configuration > option. It only works with OS X but it does not hurt other ports. > > There were other problems, though, which involve misusing the C > calling conventions. This can be done for Intel/32 bits ABI, but not > in other modes. Since OS X misidentifies the operating system as 32 > bits (uname -a), ECL was thinking it could use this optimization. I > have changed it. > > Now ECL builds on my MacBook using ABI=64 > > Juanjo > I created a new .spkg file:
http://sage.math.washington.edu/home/kirkby/Solaris-fixes/ecl-9.8.4.p0-4th-attempt/ecl-9.8.4.p0.spkg which sets the ABI, but I get an odd error. See below. I get an odd error: see below ecl-9.8.4.p0/src/src/util/system.lsp ecl-9.8.4.p0/src/src/util/tag Finished extraction **************************************************** Host system uname -a: Darwin bsd.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 i386 MacPro1,1 Darwin **************************************************** **************************************************** CC Version gcc -v Using built-in specs. Target: i686-apple-darwin9 Configured with: /var/tmp/gcc/gcc-5493~1/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9 Thread model: posix gcc version 4.0.1 (Apple Inc. build 5493) **************************************************** Building a 64-bit version of Sage Code will be built with debugging information present. Set 'SAGE_DEBUG' to 'no' if you don't want that. No Fortran compiler has been defined. This is not normally a problem. Using CC=gcc Using CXX=g++ Using FC= Using F77= Using SAGE_FORTRAN= Using SAGE_FORTRAN_LIB= Using CFLAGS= -O2 -g -Wall Using CXXFLAGS= -O2 -g -Wall Using FCFLAGS= -O2 -g -Wall Using F77FLAGS= -O2 -g -Wall Using CPPFLAGS= -I/Users/kirkby/64/sage-4.1.2.alpha0/local/include Using LDFLAGS= -L/Users/kirkby/64/sage-4.1.2.alpha0/local/lib Using LDFLAGS= -L/Users/kirkby/64/sage-4.1.2.alpha0/local/lib Using ABI=64 Switching to directory `build' to continue configuration. checking build system type... pentium3-apple-darwin9.8.0 checking host system type... pentium3-apple-darwin9.8.0 checking for gcc... gcc 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 gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking how to run the C preprocessor... gcc -E checking for ranlib... ranlib checking for a BSD-compatible install... /Users/mvngu/usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... yes checking Using the GMP library to guess good compiler/linker flags... grep: tmp/config.status: No such file or directory grep: tmp/config.status: No such file or directory checking C/C++ compiler flags... -O2 -g -Wall checking Linker flags... -L/Users/kirkby/64/sage-4.1.2.alpha0/local/lib checking for ld flags when building shared libraries... -dynamiclib -flat_namespace -undefined suppress -L/Users/kirkby/64/sage-4.1.2.alpha0/local/lib checking for required libraries... checking for architecture... PENTIUM3 checking for software type... darwin / checking for __thread local data... no checking for install-info... /usr/bin/install-info checking for getpwnam in -lsun... no checking for ffi_call in -lffi... yes 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... 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 ffi/ffi.h usability... yes checking ffi/ffi.h presence... yes checking for ffi/ffi.h... yes checking for library containing strerror... none required checking for __gmpz_init in -lgmp... no checking for soname flags... -Wl,-install_name,libecl.9.8.dylib -Wl,-compatibility_version,9.8.4 checking for X... libraries /usr/X11/lib, headers checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for ANSI C header files... (cached) yes checking whether time.h and sys/time.h may both be included... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking fenv.h usability... yes checking fenv.h presence... yes checking for fenv.h... yes checking sys/resource.h usability... yes checking sys/resource.h presence... yes checking for sys/resource.h... yes checking sys/utsname.h usability... yes checking sys/utsname.h presence... yes checking for sys/utsname.h... yes checking float.h usability... yes checking float.h presence... yes checking for float.h... yes checking pwd.h usability... yes checking pwd.h presence... yes checking for pwd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking link.h usability... no checking link.h presence... no checking for link.h... no checking mach-o/dyld.h usability... yes checking mach-o/dyld.h presence... yes checking for mach-o/dyld.h... yes checking ulimit.h usability... yes checking ulimit.h presence... yes checking for ulimit.h... yes checking dirent.h usability... yes checking dirent.h presence... yes checking for dirent.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/wait.h usability... yes checking sys/wait.h presence... yes checking for sys/wait.h... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for working volatile... yes checking for ptrdiff_t... yes checking size of long long... 64 checking whether byte ordering is bigendian... no checking appropiate type for fixnums... int checking for stdint.h... (cached) yes checking uint8_t type... uint8_t checking uint16_t type... uint16_t checking uint32_t type... uint32_t checking uint64_t type... uint64_t checking character sequence for end of line... lf checking for _longjmp... yes checking whether we can dynamically build calls to C functions... yes checking for code to detect FP exceptions... x86 checking whether stack growns downwards... yes checking whether closedir returns void... no checking for error_at_line... no checking for pid_t... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking whether gcc needs -traditional... no checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for working memcmp... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for getpagesize... yes checking for working mmap... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for sys/select.h... (cached) yes checking for sys/socket.h... (cached) yes checking types of arguments for select... int,fd_set *,struct timeval * checking return type of signal handlers... void checking whether lstat dereferences a symlink specified with a trailing slash... no checking whether stat accepts an empty string... no checking for working strtod... yes checking for floor... yes checking for getcwd... yes checking for gethostbyaddr... yes checking for gethostbyname... yes checking for getpagesize... (cached) yes checking for memmove... yes checking for memset... yes checking for mkdir... yes checking for putenv... yes checking for socket... yes checking for sqrt... yes checking for strcasecmp... yes checking for strchr... yes checking for strerror... yes checking for strtol... yes checking for nanosleep... yes checking for alarm... yes checking for times... yes checking for select... yes checking for setenv... yes checking for putenv... (cached) yes checking for lstat... yes checking for mkstemp... yes checking for sigprocmask... yes checking for isatty... yes checking for feenableexcept... no checking for tzset... yes checking for gettimeofday... yes checking for getrusage... yes checking for expf... yes checking for logf... yes checking for sqrtf... yes checking for cosf... yes checking for sinf... yes checking for tanf... yes checking for sinhf... yes checking for coshf... yes checking for tanhf... yes checking for floorf... yes checking for ceilf... yes checking for fabsf... yes checking for frexpf... yes checking for ldexpf... yes checking for log1p... yes checking for log1pf... yes checking for log1pl... yes checking for sched_yield... yes checking for uname... yes checking for fseeko... yes checking sys/mman.h usability... yes checking sys/mman.h presence... yes checking for sys/mman.h... yes configure: Configuring included Boehm GC library: checking build system type... i386-apple-darwin9.8.0 checking host system type... i386-apple-darwin9.8.0 checking target system type... i386-apple-darwin9.8.0 checking GC version numbers... major=7 minor=1 checking for a BSD-compatible install... /Users/mvngu/usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc -fPIC -fno-common 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 gcc -fPIC -fno-common accepts -g... yes checking for gcc -fPIC -fno-common option to accept ISO C89... none needed checking dependency style of gcc -fPIC -fno-common... gcc3 checking whether gcc -fPIC -fno-common and cc understand -c and -o together... rm: cannot remove `conftest.dSYM': Is a directory yes checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking for ar... ar checking for ranlib... ranlib checking for a BSD-compatible install... /Users/mvngu/usr/bin/install -c checking for x86_thread_state32_t.eax... no checking for x86_thread_state32_t.__eax... yes checking for xlc... no checking whether to build shared libraries... no checking which machine-dependent code should be used... checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ld used by gcc -fPIC -fno-common... ld checking if the linker (ld) is GNU ld... no checking for ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -p checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -fPIC -fno-common -E checking for ANSI C header files... rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `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 dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for xlf... no checking for f77... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for xlf90... no checking for f90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... gfortran checking whether we are using the GNU Fortran 77 compiler... yes checking whether gfortran accepts -g... yes checking the maximum length of command line arguments... 196608 checking command to parse /usr/bin/nm -p output from gcc -fPIC -fno-common object... rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `conftest.dSYM': Is a directory ok checking for objdir... .libs checking for ar... (cached) ar checking for ranlib... (cached) ranlib checking for strip... strip rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `conftest.dSYM': Is a directory checking if gcc -fPIC -fno-common supports -fno-rtti -fno-exceptions... rm: cannot remove `conftest.dSYM': Is a directory no checking for gcc -fPIC -fno-common option to produce PIC... -fno-common checking if gcc -fPIC -fno-common PIC flag -fno-common works... rm: cannot remove `conftest.dSYM': Is a directory yes checking if gcc -fPIC -fno-common static flag -static works... rm: cannot remove `conftest.dSYM': Is a directory no checking if gcc -fPIC -fno-common supports -c -o file.o... rm: cannot remove `conftest.dSYM': Is a directory yes checking whether the gcc -fPIC -fno-common linker (ld) supports shared libraries... yes checking dynamic linker characteristics... darwin9.8.0 dyld checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `conftest.dSYM': Is a directory checking for ld used by g++... ld checking if the linker (ld) is GNU ld... no checking whether the g++ linker (ld) supports shared libraries... yes checking for g++ option to produce PIC... -fno-common checking if g++ PIC flag -fno-common works... rm: cannot remove `conftest.dSYM': Is a directory yes checking if g++ static flag -static works... rm: cannot remove `conftest.dSYM': Is a directory no checking if g++ supports -c -o file.o... rm: cannot remove `conftest.dSYM': Is a directory yes checking whether the g++ linker (ld) supports shared libraries... yes checking dynamic linker characteristics... darwin9.8.0 dyld checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool rm: cannot remove `conftest.dSYM': Is a directory rm: cannot remove `conftest.dSYM': Is a directory checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes checking for gfortran option to produce PIC... -fno-common checking if gfortran PIC flag -fno-common works... rm: cannot remove `conftest.dSYM': Is a directory yes checking if gfortran static flag -static works... rm: cannot remove `conftest.dSYM': Is a directory no checking if gfortran supports -c -o file.o... rm: cannot remove `conftest.dSYM': Is a directory yes checking whether the gfortran linker (ld) supports shared libraries... yes checking dynamic linker characteristics... darwin9.8.0 dyld checking how to hardcode library paths into programs... immediate checking sys/dg_sys_info.h usability... no checking sys/dg_sys_info.h presence... no checking for sys/dg_sys_info.h... no checking whether Solaris gcc optimization fix is necessary... no checking atomic_ops.h usability... no checking atomic_ops.h presence... no checking for atomic_ops.h... no configure: Using internal version of libatomic_ops configure: creating ./config.status config.status: creating Makefile config.status: creating bdw-gc.pc config.status: executing depfiles commands config.status: executing default commands configure: Configuring included GMP library: checking build system type... none-apple-darwin9.8.0 checking host system type... none-apple-darwin9.8.0 checking for a BSD-compatible install... /Users/mvngu/usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no configure: error: ABI=64 is not among the following valid choices: long longlongconfigure: creating ./config.status config.status: creating bare.lsp config.status: creating lsp/load.lsp config.status: creating clos/load.lsp config.status: creating cmp/load.lsp config.status: creating ../Makefile config.status: WARNING: '../Makefile.in' seems to ignore the --datarootdir setting config.status: creating Makefile config.status: creating c/Makefile config.status: creating doc/Makefile config.status: WARNING: '/Users/kirkby/64/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/src/doc/Makefile.in' seems to ignore the --datarootdir setting config.status: creating doc/ecl.man config.status: creating doc/ecl-config.man config.status: creating ecl/configpre.h config.status: creating bin/ecl-config.pre config.status: creating lsp/config.pre config.status: creating compile.pre config.status: creating cmp/cmpdefs.pre config.status: creating ecl/config.h Configuration complete. To build ECL, issue make in this directory. cd build; make cp /Users/kirkby/64/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/src/util/gdbinit .gdbinit if (echo c gc gmp | grep gmp); then \ cd gmp && make install && \ cd .. && mv include/gmp.h ecl/ && rmdir include && \ mv ./libgmp.a ./libeclgmp.a; \ fi c gc gmp make[2]: *** No rule to make target `install'. Stop. make[1]: *** [libeclgmp.a] Error 2 make: *** [all] Error 2 real 0m34.555s user 0m9.122s sys 0m17.578s sage: An error occurred while installing ecl-9.8.4.p0 Please email sage-devel http://groups.google.com/group/sage-devel explaining the problem and send the relevant part of of /Users/kirkby/64/sage-4.1.2.alpha0/install.log. Describe your computer, operating system, etc. If you want to try to fix the problem, yourself *don't* just cd to /Users/kirkby/64/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0 and type 'make'. Instead type "/Users/kirkby/64/sage-4.1.2.alpha0/sage -sh" in order to set all environment variables correctly, then cd to /Users/kirkby/64/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0 (When you are done debugging, you can type "exit" to leave the subshell.) --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---