EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Problems building on Cygwin
From: Mark Rivers <[email protected]>
To: "[email protected]" <[email protected]>
Date: Wed, 13 May 2015 22:01:03 +0000

Folks,

 

I have into a problem I don’t understand when building some EPICS modules with recent versions of Cygwin.  My version is currently 2.0.1 with gcc 4.8.3

 

$ more /proc/version

CYGWIN_NT-6.1-WOW version 2.0.1(0.287/5/3) ([email protected]) (gcc version 4.8.3 20140522 (Fedora Cygwin 4.8.3-6) (GCC) ) 2015-04-30 18:13

 

This is the problem I get when building mca/mcaApp/CanberraSrc:

 

$ make

make -C O.cygwin-x86 -f ../Makefile TOP=../../.. \

    T_A=cygwin-x86 install

make[1]: Entering directory '/cygdrive/j/epics/devel/mca/mcaApp/CanberraSrc/O.cygwin-x86'

g++ -o mcaCanberra.dll -shared -Wl,--out-implib,mcaCanberra.lib -L/cygdrive/j/epics/devel/mca/lib/cygwin-x86 -L/cygdrive/h/epics/base-3.14.1

2.5/lib/cygwin-x86 -L/cygdrive/j/epics/devel/asyn-4-26/lib/cygwin-x86        -m32               nmc_comm_subs_1.o nmc_comm_subs_2.o nmc_user

_subs_1.o nmc_user_subs_2.o drvMcaAIMAsyn.o icb_strings.o icb_crmpsc.o icb_handler_subs.o icb_control_subs.o icb_control_subs2.o icb_user_su

bs.o icb_show_modules.o drvIcbAsyn.o DSA2000.o mcaCanberraRegister.o    -lasyn -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIo

c -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lwpcap -lPacket  -ltirpc -lpthread    -lm

/cygdrive/j/epics/devel/mca/lib/cygwin-x86/wpcap.lib: error adding symbols: File in wrong format

collect2: error: ld returned 1 exit status

/corvette/usr/local/epics/base-3.14.12.5/configure/RULES_BUILD:300: recipe for target 'mcaCanberra.dll' failed

make[1]: *** [mcaCanberra.dll] Error 1

 

 

This is the error I get when building dxp/dxpApp/handelSrc:

 

$ make

make -C O.cygwin-x86 -f ../Makefile TOP=../../.. \

    T_A=cygwin-x86 install

make[1]: Entering directory '/cygdrive/j/epics/devel/dxp/dxpApp/handelSrc/O.cygwin-x86'

g++ -o handel.dll -shared -Wl,--out-implib,handel.lib -L/cygdrive/j/epics/devel/dxp/lib/cygwin-x86 -L/cygdrive/h/epics/base-3.14.12.5/lib/cy

gwin-x86        -m32               xerxes.o xerxes_log.o md_log.o handel.o fdd.o psl.o handel_dbg.o handel_detchan.o handel_dyn_default.o ha

ndel_dyn_detector.o handel_dyn_firmware.o handel_dyn_module.o handel_file.o handel_log.o handel_memdbg_win32.o handel_run_control.o handel_r

un_params.o handel_sort.o handel_system.o handel_xerxes.o xia_assert.o xia_file.o xia_mem.o xia_mem_point.o saturn.o saturn_psl.o xmap.o xma

p_psl.o mercury.o mercury_psl.o xia_epp.o xia_plx.o xia_usb.o xia_usb2.o md_win32.o    -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtoolsIo

c -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lDLPORTIO -lPlxApi  -lsetupapi -lUser32 -lpthread    -lm

/cygdrive/j/epics/devel/dxp/lib/cygwin-x86/PlxApi.lib: error adding symbols: File in wrong format

collect2: error: ld returned 1 exit status

/corvette/usr/local/epics/base-3.14.12.5/configure/RULES_BUILD:300: recipe for target 'handel.dll' failed

make[1]: *** [handel.dll] Error 1

make[1]: Leaving directory '/cygdrive/j/epics/devel/dxp/dxpApp/handelSrc/O.cygwin-x86'

/corvette/usr/local/epics/base-3.14.12.5/configure/RULES_ARCHS:64: recipe for target 'install.cygwin-x86' failed

make: *** [install.cygwin-x86] Error 2

 

In both cases the error is “error adding symbols: File in wrong format” when trying to link the DLL with a vendor library (.lib) file.

 

These same vendor libraries used to work fine when building statically on an older version of Cygwin.

 

Running “file” and “nm” on the .lib files seems to work OK:

 

$ file PlxApi.lib

PlxApi.lib: current ar archive

 

rivers@rivers-mobile2 /corvette/home/epics/devel/dxp/lib/cygwin-x86

$ nm PlxApi.lib

 

PlxApi631.dll:

00000000 i .idata$2

00000000 i .idata$4

00000000 i .idata$5

00000000 i .idata$6

000420ff a @comp.id

00000000 I __IMPORT_DESCRIPTOR_PlxApi631

         U __NULL_IMPORT_DESCRIPTOR

         U ⌂PlxApi631_NULL_THUNK_DATA

 

PlxApi631.dll:

000420ff a @comp.id

00000000 I __NULL_IMPORT_DESCRIPTOR

 

PlxApi631.dll:

000420ff a @comp.id

00000000 I ⌂PlxApi631_NULL_THUNK_DATA

 

PlxApi631.dll:

00000000 I .idata$4

00000000 I .idata$5

00000000 I .idata$6

00000000 T .text

00000000 I __imp__PlxPci_ApiVersion

         U __IMPORT_DESCRIPTOR_PlxApi631

00000000 T _PlxPci_ApiVersion

 

PlxApi631.dll:

00000000 I .idata$4

00000000 I .idata$5

00000000 I .idata$6

00000000 T .text

00000000 I __imp__PlxPci_ChipTypeGet

         U __IMPORT_DESCRIPTOR_PlxApi631

00000000 T _PlxPci_ChipTypeGet

 

PlxApi631.dll:

00000000 I .idata$4

00000000 I .idata$5

00000000 I .idata$6

00000000 T .text

00000000 I __imp__PlxPci_ChipTypeSet

         U __IMPORT_DESCRIPTOR_PlxApi631

00000000 T _PlxPci_ChipTypeSet

 

 

Does anyone know what the problem could be, and how to work around it?

 

Thanks,

Mark

 

 


Navigate by Date:
Prev: Re: "epicsMutex pthread_mutex_unlock failed" with pyepics/pcaspy Michael Davidsaver
Next: 2015 EPICS Collaboration Meeting Dinner Eric Berryman
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: problem about IPServerPort using ASYN Mark Rivers
Next: Argonne Network Maintenance on Saturday Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024