From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8001 invoked by alias); 15 Nov 2011 21:31:25 -0000 Received: (qmail 7992 invoked by uid 22791); 15 Nov 2011 21:31:24 -0000 X-SWARE-Spam-Status: No, hits=4.6 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,TW_LG,TW_NW X-Spam-Check-By: sourceware.org Received: from proofpoint4.lanl.gov (HELO proofpoint4.lanl.gov) (204.121.3.52) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 15 Nov 2011 21:31:07 +0000 Received: from mailrelay2.lanl.gov (mailrelay2.lanl.gov [128.165.4.103]) by proofpoint4.lanl.gov (8.14.4/8.14.4) with ESMTP id pAFLV6F8031348 for ; Tue, 15 Nov 2011 14:31:06 -0700 Received: from dx-mail.lanl.gov (dx-mail.lanl.gov [128.165.4.117]) by mailrelay2.lanl.gov (Postfix) with ESMTP id 8583D15F89E2 for ; Tue, 15 Nov 2011 14:31:06 -0700 (MST) Received: from localhost (localhost.localdomain [127.0.0.1]) by dx-mail.lanl.gov (Postfix) with ESMTP id 843AD37F00BA for ; Tue, 15 Nov 2011 14:31:06 -0700 (MST) X-NIE-2-Virus-Scanner: amavisd-new at dx-mail.lanl.gov Received: from hdd1281653 (hdd1281653.lanl.gov [128.165.168.79]) by dx-mail.lanl.gov (Postfix) with ESMTP id 681B337F00B9 for ; Tue, 15 Nov 2011 14:31:06 -0700 (MST) From: "Jim Harsh" To: Subject: shared Libary problems Date: Tue, 15 Nov 2011 21:31:00 -0000 Message-ID: <074601cca3dd$e28be2a0$a7a3a7e0$@gov> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.5.7110,1.0.211,0.0.0000 definitions=2011-11-15_07:2011-11-15,2011-11-15,1970-01-01 signatures=0 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com X-SW-Source: 2011-11/txt/msg00250.txt.bz2 I have a Smalltalk application that looks for a shared Library which contains C and FORTRAN routines. This shared library has been called BIEsharedLib.so regardless of the platform we run on, Windows, Linux or originally Unix. On the Windows boxes we have used the Intel compilers successfully for many years and in fact the latest versions of the Intel compilers works so our Makefiles should be close. I wanted to give Cygwin a try to see how it compares to the Intel compilers on my windows box. (Windows 7). The code appears to compile OK but when doing the final link/loading to build the shared Library I get the following. COLLECT_GCC_OPTIONS='-v' '-shared' '-W1,--out-implib,BIEsharedLib.dll.a' '-o' '/cygdrive/c/BIE_work/ver747Dev/BIEsharedLib.so' '-shared-libgcc' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-pc-cygwin/4.5.3/collect2.exe --wrap _Znwj --wrap _Znaj --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwjRKSt9nothrow_t --wrap _ZnajRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t --shared -Bdynamic --enable-auto-image-base -e __cygwin_dll_entry@12 --dll-search-prefix=cyg -o /cygdrive/c/BIE_work/ver747Dev/BIEsharedLib.so /usr/lib/gcc/i686-pc-cygwin/4.5.3/crtbegin.o -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 -L/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../.. /cygdrive/c/BIE_work/ver747Dev/MAKE/TopCombinedDir/cpint.o /cygdrive/c/BIE_work/ver747Dev/MAKE/TopCombinedDir/xWinLib.o /cygdrive/c/BIE_work/ver747Dev/MAKE/C+Fortran/FORTRAN/GREGS_F_STUFF/libGregs F.o /cygdrive/c/BIE_work/ver747Dev/MAKE/C+Fortran/FORTRAN/TriangulateP25/libP25F .o /cygdrive/c/BIE_work/ver747Dev/MAKE/C+Fortran/C/PW_PRAD/libPRAD.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Cinterface/libcinter.o /cygdrive/c/BIE_work/ver747Dev/MAKE/C+Fortran/C/GREGS_C_STUFF/libGregsC.o /cygdrive/c/BIE_work/ver747Dev/MAKE/C+Fortran/C/BOBS_CONE_BEAM/librjm.o /cygdrive/c/BIE_work/ver747Dev/MAKE/C+Fortran/C/3DSTUFF/lib3D.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/fftw/libfftw.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/rfftw/librfftw.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/threads/libfftw_threads.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/threads/librfftw_threads. o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/Tiff_WX/libtiff.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/libmylib.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/libladies.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/libplot_10.o /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/hdf42r6_86/lib/hm426.lib /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/hdf42r6_86/lib/hd426.lib /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/hdf42r3/jpeg/lib/libjpeg.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/hdf42r3/zlib/lib/libz.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/fftw/libfftw.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/rfftw/librfftw.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/threads/libfftw_threads.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/FFTW/threads/librfftw_threads. a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/Tiff_WX/libtiff.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/libladies.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/libmylib.a /cygdrive/c/BIE_work/ver747Dev/MAKE/Libraries/libplot_10.a -lX11 -lpthread -lgfortran -lstdc++ -lgcc -lc -lm -lgfortran -lgcc_s -lgcc -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc_s -lgcc /usr/lib/gcc/i686-pc-cygwin/4.5.3/crtend.o collect2: ld terminated with signal 11 [Segmentation fault], core dumped Warning: .drectve `/DEFAULTLIB:"oldnames" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" 3' unrecognized make: *** [/cygdrive/c/BIE_work/ver747Dev/BIEsharedLib.so] Error 1 Also I get an ld.exe.stackdump file containing Exception: STATUS_ACCESS_VIOLATION at eip=610F54C1 eax=01750000 ebx=DF0DF046 ecx=6120E554 edx=611D8368 esi=018CB778 edi=01DE3858 ebp=00000078 esp=010ECA50 program=C:\cygwin\bin\ld.exe, pid 4924, thread main cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args 1 [main] ld 4924 exception::handle: Error while dumping state (probably corrupted stack) I searched the archive and that's where I got the idea to use the" -W1, --out-implib,BIEsharedLib.dll.a" switch to get a .so vs a .dll file. I use the following symbols during the build which seem to work fine under Linux CC = gcc FORT = gfortran LD = gfortran Using the Intel compilers on Windows I have the flowing define CC = icl /nologo /O2 /G7 -D__STDC__ -DWINDOZE FC = ifort /nologo /O2 /G7 /W0 LD = link If I change the LD symbol to "ld" for the cygwin attempt I get: make: *** [/cygdrive/c/BIE_work/ver747Dev/BIEsharedLib.so] Error 1 The rest of the compile/link looks OK, at least all the routines appear to be found in the libraries listed. Any suggestions? Thanks, Jim -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple