X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com X-Authenticated: #27081556 X-Provags-ID: V01U2FsdGVkX1/3uu04VLT3TofU5CO4sxsIhtWhlBHwPOEUqN7v5s QN3JcOt5c2FW5g From: Juan Manuel Guerrero To: Eli Zaretskii Subject: Re: collect2 question Date: Mon, 30 Aug 2010 23:55:43 +0200 User-Agent: KMail/1.9.10 Cc: djgpp AT delorie DOT com References: <201008302230 DOT 48568 DOT juan DOT guerrero AT gmx DOT de> <83occjkejn DOT fsf AT gnu DOT org> In-Reply-To: <83occjkejn.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201008302355.44034.juan.guerrero@gmx.de> X-Y-GMX-Trusted: 0 Am Montag, 30. August 2010 schrieb Eli Zaretskii: > > From: Juan Manuel Guerrero > > Date: Mon, 30 Aug 2010 22:30:48 +0200 [snip] > Can you add -Wl,-t to the compiler options? That should force the > linker to print every input file as it processes them, and you might > see which one of them causes this error. Here is th output. As can be seen after libmath libgcc is linked then libc is linkend and at the end libgcc is linked again. The surprissing issue to me is that for the first time ld.exe is able to locate libgcc at (c:/djgpp-2.04/bin/../lib/gcc/djgpp/4.44/libgcc.a)unwind-dw2-fde.o but at the second time it is no longer able to lacte libgcc. The question is if libtool still has enough djgpp support to be able to create the djgpp specific library sequence. This is not completely trivial, e.g.: somewhere in configure there are the following lines that determinate the path to find the libraries: # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac The above is also true for djgpp's port of gawk. The user not aware of this will get a libtool script that will not work properly. libtool contains the following lines: # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects="c:/djgpp-2.04/lib/crt0.o" postdep_objects="" predeps="" postdeps="-lstdcxx -lm -lgcc -lc -lgcc" The question is, is the $postdeps correct? Regards, Juan Guerrero make.exe[3]: Entering directory `f:/t/tiff-3.9.4/contrib/dbs' c:/djgpp-2.04/bin/sh.exe ../../libtool --tag=CC --mode=link gcc -std=gnu99 -g -O2 -Wall -W -o tiff-bi.exe tiff-bi.o ../../libtiff/libtiff.la -ljbig -ljpeg -lz -lm libtool: link: gcc -std=gnu99 -g -O2 -Wall -W -o tiff-bi.exe tiff-bi.o -Wl -t ../../libtiff/_libs/libtiff.a -ljbig /dev/env/DJDIR/lib/libjpeg.a -lz -lm c:/djgpp-2.04/bin/ld.exe: mode i386go32 c:/djgpp-2.04/lib/crt0.o tiff-bi.o (../../libtiff/_libs/libtiff.a)tif_unix.o (../../libtiff/_libs/libtiff.a)tif_dir.o (../../libtiff/_libs/libtiff.a)tif_write.o (../../libtiff/_libs/libtiff.a)tif_close.o (../../libtiff/_libs/libtiff.a)tif_open.o (../../libtiff/_libs/libtiff.a)tif_error.o (../../libtiff/_libs/libtiff.a)tif_swab.o (../../libtiff/_libs/libtiff.a)tif_dirread.o (../../libtiff/_libs/libtiff.a)tif_dirinfo.o (../../libtiff/_libs/libtiff.a)tif_read.o (../../libtiff/_libs/libtiff.a)tif_compress.o (../../libtiff/_libs/libtiff.a)tif_warning.o (../../libtiff/_libs/libtiff.a)tif_aux.o (../../libtiff/_libs/libtiff.a)tif_strip.o (../../libtiff/_libs/libtiff.a)tif_tile.o (../../libtiff/_libs/libtiff.a)tif_flush.o (../../libtiff/_libs/libtiff.a)lfind.o (../../libtiff/_libs/libtiff.a)tif_codec.o (../../libtiff/_libs/libtiff.a)tif_dirwrite.o (../../libtiff/_libs/libtiff.a)tif_dumpmode.o (../../libtiff/_libs/libtiff.a)tif_lzw.o (../../libtiff/_libs/libtiff.a)tif_packbits.o (../../libtiff/_libs/libtiff.a)tif_thunder.o (../../libtiff/_libs/libtiff.a)tif_next.o (../../libtiff/_libs/libtiff.a)tif_jpeg.o (../../libtiff/_libs/libtiff.a)tif_ojpeg.o (../../libtiff/_libs/libtiff.a)tif_fax3.o (../../libtiff/_libs/libtiff.a)tif_jbig.o (../../libtiff/_libs/libtiff.a)tif_zip.o (../../libtiff/_libs/libtiff.a)tif_pixarlog.o (../../libtiff/_libs/libtiff.a)tif_luv.o (../../libtiff/_libs/libtiff.a)tif_predict.o (../../libtiff/_libs/libtiff.a)tiffax3sm.o (c:/djgpp-2.04/lib/libjbig.a)jbig.o (c:/djgpp-2.04/lib/libjbig.a)jbig_ar.o (/dev/env/DJDIR/lib/libjpeg.a)jcomapi.o (/dev/env/DJDIR/lib/libjpeg.a)jcapistd.o (/dev/env/DJDIR/lib/libjpeg.a)jcapimin.o (/dev/env/DJDIR/lib/libjpeg.a)jcparam.o (/dev/env/DJDIR/lib/libjpeg.a)jerror.o (/dev/env/DJDIR/lib/libjpeg.a)jdapimin.o (/dev/env/DJDIR/lib/libjpeg.a)jdapistd.o (/dev/env/DJDIR/lib/libjpeg.a)jdmarker.o (/dev/env/DJDIR/lib/libjpeg.a)jcinit.o (/dev/env/DJDIR/lib/libjpeg.a)jcmarker.o (/dev/env/DJDIR/lib/libjpeg.a)jmemmgr.o (/dev/env/DJDIR/lib/libjpeg.a)jutils.o (/dev/env/DJDIR/lib/libjpeg.a)jdinput.o (/dev/env/DJDIR/lib/libjpeg.a)jdmaster.o (/dev/env/DJDIR/lib/libjpeg.a)jcmaster.o (/dev/env/DJDIR/lib/libjpeg.a)jcdctmgr.o (/dev/env/DJDIR/lib/libjpeg.a)jcarith.o (/dev/env/DJDIR/lib/libjpeg.a)jccoefct.o (/dev/env/DJDIR/lib/libjpeg.a)jcmainct.o (/dev/env/DJDIR/lib/libjpeg.a)jchuff.o (/dev/env/DJDIR/lib/libjpeg.a)jccolor.o (/dev/env/DJDIR/lib/libjpeg.a)jcsample.o (/dev/env/DJDIR/lib/libjpeg.a)jcprepct.o (/dev/env/DJDIR/lib/libjpeg.a)jmemnobs.o (/dev/env/DJDIR/lib/libjpeg.a)jdcolor.o (/dev/env/DJDIR/lib/libjpeg.a)jdsample.o (/dev/env/DJDIR/lib/libjpeg.a)jdpostct.o (/dev/env/DJDIR/lib/libjpeg.a)jddctmgr.o (/dev/env/DJDIR/lib/libjpeg.a)jdarith.o (/dev/env/DJDIR/lib/libjpeg.a)jdcoefct.o (/dev/env/DJDIR/lib/libjpeg.a)jquant1.o (/dev/env/DJDIR/lib/libjpeg.a)jquant2.o (/dev/env/DJDIR/lib/libjpeg.a)jdhuff.o (/dev/env/DJDIR/lib/libjpeg.a)jdmerge.o (/dev/env/DJDIR/lib/libjpeg.a)jdmainct.o (/dev/env/DJDIR/lib/libjpeg.a)jfdctint.o (/dev/env/DJDIR/lib/libjpeg.a)jfdctfst.o (/dev/env/DJDIR/lib/libjpeg.a)jfdctflt.o (/dev/env/DJDIR/lib/libjpeg.a)jaricom.o (/dev/env/DJDIR/lib/libjpeg.a)jidctint.o (/dev/env/DJDIR/lib/libjpeg.a)jidctfst.o (/dev/env/DJDIR/lib/libjpeg.a)jidctflt.o (c:/djgpp-2.04/lib/libz.a)inflate.o (c:/djgpp-2.04/lib/libz.a)deflate.o (c:/djgpp-2.04/lib/libz.a)adler32.o (c:/djgpp-2.04/lib/libz.a)crc32.o (c:/djgpp-2.04/lib/libz.a)inftrees.o (c:/djgpp-2.04/lib/libz.a)inffast.o (c:/djgpp-2.04/lib/libz.a)zutil.o (c:/djgpp-2.04/lib/libz.a)compress.o (c:/djgpp-2.04/lib/libz.a)trees.o (c:/djgpp-2.04/lib/libm.a)w_pow.o (c:/djgpp-2.04/lib/libm.a)s_floor.o (c:/djgpp-2.04/lib/libm.a)w_exp.o (c:/djgpp-2.04/lib/libm.a)w_log.o (c:/djgpp-2.04/lib/libm.a)w_sqrt.o (c:/djgpp-2.04/lib/libm.a)w_atan2.o (c:/djgpp-2.04/lib/libm.a)e_pow.o (c:/djgpp-2.04/lib/libm.a)s_lib_ver.o (c:/djgpp-2.04/lib/libm.a)s_isnan.o (c:/djgpp-2.04/lib/libm.a)k_standard.o (c:/djgpp-2.04/lib/libm.a)s_finite.o (c:/djgpp-2.04/lib/libm.a)e_exp.o (c:/djgpp-2.04/lib/libm.a)e_log.o (c:/djgpp-2.04/lib/libm.a)e_sqrt.o (c:/djgpp-2.04/lib/libm.a)e_atan2.o (c:/djgpp-2.04/lib/libm.a)s_scalbn.o (c:/djgpp-2.04/lib/libm.a)s_nan.o (c:/djgpp-2.04/lib/libm.a)s_matherr.o (c:/djgpp-2.04/lib/libm.a)s_rint.o (c:/djgpp-2.04/lib/libm.a)s_infinity.o (c:/djgpp-2.04/lib/libm.a)s_copysign.o (c:/djgpp-2.04/lib/libm.a)s_atan.o (c:/djgpp-2.04/bin/../lib/gcc/djgpp/4.44/libgcc.a)unwind-dw2-fde.o (c:/djgpp-2.04/lib/libc.a)npxsetup.o (c:/djgpp-2.04/lib/libc.a)id_c.o (c:/djgpp-2.04/lib/libc.a)crt1.o (c:/djgpp-2.04/lib/libc.a)infostrc.o (c:/djgpp-2.04/lib/libc.a)stderr.o (c:/djgpp-2.04/lib/libc.a)fprintf.o (c:/djgpp-2.04/lib/libc.a)malloc.o (c:/djgpp-2.04/lib/libc.a)vfprintf.o (c:/djgpp-2.04/lib/libc.a)fwrite.o (c:/djgpp-2.04/lib/libc.a)memcpy.o (c:/djgpp-2.04/lib/libc.a)memset.o (c:/djgpp-2.04/lib/libc.a)stub0002.o (c:/djgpp-2.04/lib/libc.a)stub0012.o (c:/djgpp-2.04/lib/libc.a)fstat.o (c:/djgpp-2.04/lib/libc.a)stub0010.o (c:/djgpp-2.04/lib/libc.a)stub0017.o (c:/djgpp-2.04/lib/libc.a)stub0014.o (c:/djgpp-2.04/lib/libc.a)strlen.o (c:/djgpp-2.04/lib/libc.a)assert.o (c:/djgpp-2.04/lib/libc.a)strcpy.o (c:/djgpp-2.04/lib/libc.a)sprintf.o (c:/djgpp-2.04/lib/libc.a)strcmp.o (c:/djgpp-2.04/lib/libc.a)bsearch.o (c:/djgpp-2.04/lib/libc.a)qsort.o (c:/djgpp-2.04/lib/libc.a)setjmp.o (c:/djgpp-2.04/lib/libc.a)longjmp.o (c:/djgpp-2.04/lib/libc.a)fputc.o (c:/djgpp-2.04/lib/libc.a)rand.o (c:/djgpp-2.04/lib/libc.a)memchr.o (c:/djgpp-2.04/lib/libc.a)abort.o (c:/djgpp-2.04/lib/libc.a)exit.o (c:/djgpp-2.04/lib/libc.a)getenv.o (c:/djgpp-2.04/lib/libc.a)sscanf.o (c:/djgpp-2.04/lib/libc.a)errno.o (c:/djgpp-2.04/lib/libc.a)huge_val.o (c:/djgpp-2.04/lib/libc.a)fputs.o (c:/djgpp-2.04/lib/libc.a)exceptn.o (c:/djgpp-2.04/lib/libc.a)dpmiexcp.o (c:/djgpp-2.04/lib/libc.a)ct_lower.o (c:/djgpp-2.04/lib/libc.a)d0e01.o (c:/djgpp-2.04/lib/libc.a)fpu.o (c:/djgpp-2.04/lib/libc.a)cntrl87.o (c:/djgpp-2.04/lib/libc.a)_write.o (c:/djgpp-2.04/lib/libc.a)dxeload.o (c:/djgpp-2.04/lib/libc.a)strcat.o (c:/djgpp-2.04/lib/libc.a)d0000.o (c:/djgpp-2.04/lib/libc.a)d0008.o (c:/djgpp-2.04/lib/libc.a)d0300_z.o (c:/djgpp-2.04/lib/libc.a)d0400.o (c:/djgpp-2.04/lib/libc.a)d0006.o (c:/djgpp-2.04/lib/libc.a)md.o (c:/djgpp-2.04/lib/libc.a)putenv.o (c:/djgpp-2.04/lib/libc.a)calloc.o (c:/djgpp-2.04/lib/libc.a)getdos_v.o (c:/djgpp-2.04/lib/libc.a)osminor.o (c:/djgpp-2.04/lib/libc.a)osmajor.o (c:/djgpp-2.04/lib/libc.a)frlist.o (c:/djgpp-2.04/lib/libc.a)_use_lfn.o (c:/djgpp-2.04/lib/libc.a)c1loadef.o (c:/djgpp-2.04/lib/libc.a)c1args.o (c:/djgpp-2.04/lib/libc.a)_main.o (c:/djgpp-2.04/lib/libc.a)doprnt.o (c:/djgpp-2.04/lib/libc.a)fflush.o (c:/djgpp-2.04/lib/libc.a)writhook.o (c:/djgpp-2.04/lib/libc.a)dosio.o (c:/djgpp-2.04/lib/libc.a)flsbuf.o (c:/djgpp-2.04/lib/libc.a)isatty.o (c:/djgpp-2.04/lib/libc.a)djmd.o (c:/djgpp-2.04/lib/libc.a)close.o (c:/djgpp-2.04/lib/libc.a)open.o (c:/djgpp-2.04/lib/libc.a)xstat.o (c:/djgpp-2.04/lib/libc.a)lfnftime.o (c:/djgpp-2.04/lib/libc.a)getdinfo.o (c:/djgpp-2.04/lib/libc.a)getuid.o (c:/djgpp-2.04/lib/libc.a)getgid.o (c:/djgpp-2.04/lib/libc.a)fd_props.o (c:/djgpp-2.04/lib/libc.a)time.o (c:/djgpp-2.04/lib/libc.a)is_exec.o (c:/djgpp-2.04/lib/libc.a)_irdlink.o (c:/djgpp-2.04/lib/libc.a)filelen.o (c:/djgpp-2.04/lib/libc.a)fsext.o (c:/djgpp-2.04/lib/libc.a)stat.o (c:/djgpp-2.04/lib/libc.a)lseek.o (c:/djgpp-2.04/lib/libc.a)write.o (c:/djgpp-2.04/lib/libc.a)read.o (c:/djgpp-2.04/lib/libc.a)stdiohk.o (c:/djgpp-2.04/lib/libc.a)setmode.o (c:/djgpp-2.04/lib/libc.a)doscan.o (c:/djgpp-2.04/lib/libc.a)dpmi_lsl.o (c:/djgpp-2.04/lib/libc.a)stat87.o (c:/djgpp-2.04/lib/libc.a)d0202.o (c:/djgpp-2.04/lib/libc.a)d0203.o (c:/djgpp-2.04/lib/libc.a)d0204.o (c:/djgpp-2.04/lib/libc.a)d0205.o (c:/djgpp-2.04/lib/libc.a)d0201.o (c:/djgpp-2.04/lib/libc.a)d0304.o (c:/djgpp-2.04/lib/libc.a)d0200.o (c:/djgpp-2.04/lib/libc.a)d0303.o (c:/djgpp-2.04/lib/libc.a)d0600.o (c:/djgpp-2.04/lib/libc.a)clear87.o (c:/djgpp-2.04/lib/libc.a)lfilelen.o (c:/djgpp-2.04/lib/libc.a)llseek.o (c:/djgpp-2.04/lib/libc.a)doserr2e.o (c:/djgpp-2.04/lib/libc.a)dmp.o (c:/djgpp-2.04/lib/libc.a)_open.o (c:/djgpp-2.04/lib/libc.a)_read.o (c:/djgpp-2.04/lib/libc.a)_close.o (c:/djgpp-2.04/lib/libc.a)strchr.o (c:/djgpp-2.04/lib/libc.a)strncmp.o (c:/djgpp-2.04/lib/libc.a)osflavor.o (c:/djgpp-2.04/lib/libc.a)stdin.o (c:/djgpp-2.04/lib/libc.a)stdout.o (c:/djgpp-2.04/lib/libc.a)stdprn.o (c:/djgpp-2.04/lib/libc.a)stdaux.o (c:/djgpp-2.04/lib/libc.a)d_getdrv.o (c:/djgpp-2.04/lib/libc.a)putpath.o (c:/djgpp-2.04/lib/libc.a)ct_upper.o (c:/djgpp-2.04/lib/libc.a)ct_flags.o (c:/djgpp-2.04/lib/libc.a)c1pglob.o (c:/djgpp-2.04/lib/libc.a)strncpy.o (c:/djgpp-2.04/lib/libc.a)strncat.o (c:/djgpp-2.04/lib/libc.a)lconv.o (c:/djgpp-2.04/lib/libc.a)putc.o (c:/djgpp-2.04/lib/libc.a)modfl.o (c:/djgpp-2.04/lib/libc.a)fwalk.o (c:/djgpp-2.04/lib/libc.a)dup.o (c:/djgpp-2.04/lib/libc.a)fcntl.o (c:/djgpp-2.04/lib/libc.a)sdirlink.o (c:/djgpp-2.04/lib/libc.a)fexistp.o (c:/djgpp-2.04/lib/libc.a)fmode.o (c:/djgpp-2.04/lib/libc.a)_creat_n.o (c:/djgpp-2.04/lib/libc.a)access.o (c:/djgpp-2.04/lib/libc.a)_creat.o (c:/djgpp-2.04/lib/libc.a)basename.o (c:/djgpp-2.04/lib/libc.a)readlink.o (c:/djgpp-2.04/lib/libc.a)xsymlink.o (c:/djgpp-2.04/lib/libc.a)ctime.o (c:/djgpp-2.04/lib/libc.a)remotdrv.o (c:/djgpp-2.04/lib/libc.a)statfs.o (c:/djgpp-2.04/lib/libc.a)truename.o (c:/djgpp-2.04/lib/libc.a)remove.o (c:/djgpp-2.04/lib/libc.a)stricmp.o (c:/djgpp-2.04/lib/libc.a)gettimeo.o (c:/djgpp-2.04/lib/libc.a)strstr.o (c:/djgpp-2.04/lib/libc.a)findfirs.o (c:/djgpp-2.04/lib/libc.a)tell.o (c:/djgpp-2.04/lib/libc.a)strpbrk.o (c:/djgpp-2.04/lib/libc.a)fse_open.o (c:/djgpp-2.04/lib/libc.a)lstat.o (c:/djgpp-2.04/lib/libc.a)readhook.o (c:/djgpp-2.04/lib/libc.a)crlf2nl.o (c:/djgpp-2.04/lib/libc.a)fclose.o (c:/djgpp-2.04/lib/libc.a)ungetc.o (c:/djgpp-2.04/lib/libc.a)fgetc.o (c:/djgpp-2.04/lib/libc.a)atof.o (c:/djgpp-2.04/lib/libc.a)atold.o (c:/djgpp-2.04/lib/libc.a)doserrno.o (c:/djgpp-2.04/lib/libc.a)dmg.o (c:/djgpp-2.04/lib/libc.a)glob.o (c:/djgpp-2.04/lib/libc.a)doslk64.o (c:/djgpp-2.04/lib/libc.a)2f_1680.o (c:/djgpp-2.04/lib/libc.a)dosunl64.o (c:/djgpp-2.04/lib/libc.a)getdtabl.o (c:/djgpp-2.04/lib/libc.a)dup2.o (c:/djgpp-2.04/lib/libc.a)_chmod.o (c:/djgpp-2.04/lib/libc.a)fixpath.o (c:/djgpp-2.04/lib/libc.a)opendir.o (c:/djgpp-2.04/lib/libc.a)strrchr.o (c:/djgpp-2.04/lib/libc.a)findnext.o (c:/djgpp-2.04/lib/libc.a)is_dos83.o (c:/djgpp-2.04/lib/libc.a)memmove.o (c:/djgpp-2.04/lib/libc.a)filbuf.o (c:/djgpp-2.04/lib/libc.a)strtod.o (c:/djgpp-2.04/lib/libc.a)strtold.o (c:/djgpp-2.04/lib/libc.a)fnmatch.o (c:/djgpp-2.04/lib/libc.a)fncase.o (c:/djgpp-2.04/lib/libc.a)d0300.o (c:/djgpp-2.04/lib/libc.a)mbcurmax.o (c:/djgpp-2.04/lib/libc.a)mblen.o (c:/djgpp-2.04/lib/libc.a)odflags.o (c:/djgpp-2.04/lib/libc.a)djmdr.o (c:/djgpp-2.04/lib/libc.a)strnicmp.o (c:/djgpp-2.04/lib/libc.a)hugevalf.o (c:/djgpp-2.04/lib/libc.a)nan_def.o (c:/djgpp-2.04/lib/libc.a)strtoull.o (c:/djgpp-2.04/lib/libc.a)float_dx.oc:/djgpp-2.04/bin/ld.exe: cannot find -lgcc collect2: ld returned 1 exit status make.exe[3]: *** [tiff-bi.exe] Error 1 make.exe[3]: Leaving directory `f:/t/tiff-3.9.4/contrib/dbs' make.exe[2]: *** [all-recursive] Error 1 make.exe[2]: Leaving directory `f:/t/tiff-3.9.4/contrib/dbs' make.exe[1]: *** [all-recursive] Error 1 make.exe[1]: Leaving directory `f:/t/tiff-3.9.4/contrib' make.exe: *** [all-recursive] Error 1