[Ecls-list] c::builder uses tempfile with only 1 object file

Greg Pfeil sellout42 at mac.com
Wed May 10 18:23:02 UTC 2006


c::builder has the following comment:

   ;;
   ;; When a module is built out of several object files, we have to
   ;; create an additional object file that initializes those ones.
   ;; This routine is responsible for creating this file.
   ;;
   ;; To avoid name clashes, this object file will have a temporary
   ;; file name (tmp-name).
   ;;

However, the additional object file seems to be created and used 
regardless of whether there are multiple object files. This doesn't 
seem to cause a problem when a static library is created, but causes an 
error (below) when building a dll.

;;; Note: Invoking external command:
;;; gcc -o "/path/to/libmoptilities.so" -L"/path/to/lib/ecl" 
"/path/to/ECLINITWmzMYO.o" "/path/to/moptilities/dev/moptilities.o"  
-Wl,--rpath,/path/to/lib/ecl -shared   -lecl -lpthread -ldl  -lm   
-lgmp

/path/to/moptilities/dev/moptilities.o(.text+0x2db4): In function 
`init_MOPTILITIES':
: multiple definition of `init_MOPTILITIES'
/path/to/ECLINITWmzMYO.o(.text+0x0): first defined here
/usr/bin/ld: Warning: size of symbol `init_MOPTILITIES' changed from 
112 in /path/to/ECLINITWmzMYO.o to 7392 in 
/path/to/moptilities/dev/moptilities.o
collect2: ld returned 1 exit status





More information about the ecl-devel mailing list