Experimental Physics and Industrial Control System
I found that if I manual enter the link command below, but omit the -lgcc flag, it succeeds. I can then proceed with the build of base, until it tries to build libca.3.14.12.dylib (ca library), when I get the same error.
Thanks,
Mark
________________________________
From: Mark Rivers
Sent: Saturday, August 11, 2012 9:27 AM
To: [email protected]
Subject: RE: Building EPICS on Mac
I just realized that there is a base/documentation/README.darwin.html.
It suggests setting ARCH_CLASS to x86_64 in CONFIG_SITE.Common.darwin-x86, and I did that. I also uncommented the lines to use clang, rather than gcc:
********************
#ARCH_CLASS = i386
ARCH_CLASS = x86_64
#ARCH_CLASS = i386 x86_64
#
# Uncomment the followings lines to build with CLANG instead of GCC.
#
CC = clang
CCC = clang++
********************
The link command now uses clang++, rather than /usr/bin/c++, but it still fails with the same error about not being able to find lgcc:
clang++ -o libCom.3.14.12.dylib -dynamiclib -flat_namespace -undefined suppress -install_name /corvette/usr/local/epics/base-3.14.12.2/lib/darwin-x86/libCom.3.14.12.dylib -compatibility_version 3.14 -current_version 3.14.12 -arch x86_64 bucketLib.o epicsRingPointer.o epicsRingBytes.o postfix.o calcPerform.o cvtFast.o resourceLib.o epicsOnce.o epicsSingletonMutex.o dbmf.o ellLib.o envSubr.o envData.o errlog.o errSymLib.o errSymTbl.o fdmgr.o fdManager.o freeListLib.o gpHashLib.o iocsh.o registry.o libComRegister.o iocLog.o logClient.o macCore.o macEnv.o macUtil.o aToIPAddr.o adjustment.o cantProceed.o epicsConvert.o epicsExit.o epicsStdlib.o epicsString.o truncateFile.o ipAddrToAsciiAsynchronous.o epicsUnitTest.o epicsThread.o epicsMutex.o epicsEvent.o epicsTime.o epicsMessageQueue.o epicsMath.o epicsGeneralTime.o osiClockTime.o osdSock.o osdSockAddrReuse.o osiSock.o systemCallIntMech.o epicsSocketConvertErrnoToString.o osdAssert.o osdFindSymbol.o osdIn!
terrupt.o osdPoolStatus.o osdSignal.o osdEnv.o epicsReadline.o epicsTempFile.o epicsStdio.o osdStdio.o osdThread.o osdMutex.o osdEvent.o osdTime.o osdProcess.o osdNetIntf.o osdMessageQueue.o devLibVME.o devLibVMEOSD.o taskwd.o epicsTimer.o timer.o timerQueue.o timerQueueActive.o timerQueueActiveMgr.o timerQueuePassive.o tsDefs.o -lreadline -lm -lgcc
ld: library not found for -lgcc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libCom.3.14.12.dylib] Error 1
make[2]: *** [install.darwin-x86] Error 2
make[1]: *** [libCom.install] Error 2
make: *** [src.install] Error 2
Thanks,
Mark
________________________________
From: Mark Rivers
Sent: Saturday, August 11, 2012 9:01 AM
To: [email protected]
Subject: Building EPICS on Mac
Folks,
I'm building EPICS on Mac for the first time. I installed the XCode package, and the Command Line Tools within XCode. When I try to build EPICs base it compiles libCom fine, but then fails when linking it:
make -C O.darwin-x86 -f ../Makefile TOP=../../.. T_A=darwin-x86 install
/usr/bin/c++ -o libCom.3.14.12.dylib -dynamiclib -flat_namespace -undefined suppress -install_name /corvette/usr/local/epics/base-3.14.12.2/lib/darwin-x86/libCom.3.14.12.dylib -compatibility_version 3.14 -current_version 3.14.12 -arch i386 bucketLib.o epicsRingPointer.o epicsRingBytes.o postfix.o calcPerform.o cvtFast.o resourceLib.o epicsOnce.o epicsSingletonMutex.o dbmf.o ellLib.o envSubr.o envData.o errlog.o errSymLib.o errSymTbl.o fdmgr.o fdManager.o freeListLib.o gpHashLib.o iocsh.o registry.o libComRegister.o iocLog.o logClient.o macCore.o macEnv.o macUtil.o aToIPAddr.o adjustment.o cantProceed.o epicsConvert.o epicsExit.o epicsStdlib.o epicsString.o truncateFile.o ipAddrToAsciiAsynchronous.o epicsUnitTest.o epicsThread.o epicsMutex.o epicsEvent.o epicsTime.o epicsMessageQueue.o epicsMath.o epicsGeneralTime.o osiClockTime.o osdSock.o osdSockAddrReuse.o osiSock.o systemCallIntMech.o epicsSocketConvertErrnoToString.o osdAssert.o osdFindSymbol.o os!
dInterrupt.o osdPoolStatus.o osdSignal.o osdEnv.o epicsReadline.o epicsTempFile.o epicsStdio.o osdStdio.o osdThread.o osdMutex.o osdEvent.o osdTime.o osdProcess.o osdNetIntf.o osdMessageQueue.o devLibVME.o devLibVMEOSD.o taskwd.o epicsTimer.o timer.o timerQueue.o timerQueueActive.o timerQueueActiveMgr.o timerQueuePassive.o tsDefs.o -lreadline -lm -lgcc
ld: library not found for -lgcc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libCom.3.14.12.dylib] Error 1
make[2]: *** [install.darwin-x86] Error 2
make[1]: *** [libCom.install] Error 2
make: *** [src.install] Error 2
So it can't find the gcc library.
I'm probably doing something stupid. Am I supposed to use the XCode tools for development, or some other gcc based toolkit? Is this documented somewhere?
Also, I suspect that once that is solved I will get an error because the Mac does not come with libreadline installed?
Thanks,
Mark
- References:
- Building EPICS on Mac Mark Rivers
- RE: Building EPICS on Mac Mark Rivers
- Navigate by Date:
- Prev:
RE: Building EPICS on Mac Mark Rivers
- Next:
RE: Building EPICS on Mac Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
<2012>
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: Building EPICS on Mac Mark Rivers
- Next:
RE: Building EPICS on Mac Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
<2012>
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024