EPICS Controls Argonne National Laboratory

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: RE: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine
From: "Cusick, Martin-Lee" <[email protected]>
To: "Mark Rivers" <[email protected]>, <[email protected]>
Date: Wed, 9 Dec 2015 16:27:58 -0500
UNRESTRICTED  /  ILLIMITÉE

Hi Mark,

First off I would like to thank you all (Mark, Andrew, and Michael) for your input. I want to be clear that I'm green as green could be to this and computer science in general. Our EPICS build on site was cleanly done by a script which doesn't really help my knowledge of how this is actually done. So it could be said that I am missing some very important steps in the first major step in building an IOC, build EPICS base. You could probably tell that from my use of an old tech-talk; which I have now removed those lines from the Common file.

I'm assuming that I am on the right track with what seems to be the proper binaries for linux-arm and x86_64. That is obviously an assumption as I haven't got to building an actual IOC.

To continue on our troubleshooting:

So I just need some clarity on where you want the EPICS_HOST_ARCH variable set.

I have that variable in .bashrc as linux-x86_64, also EpicsHostArch under the startup directory will give me the same answer, and finally if there is a setenv command I definitely do not have it in my path. CONFIG_SITE clearly states not to set it there. Once this is clarified I will run the build and script the result and send it to you, or how ever you would like.

Thanks again,

Lee

Ps. I'm hoping to get better at this and help contribute back.




-----Original Message-----
From: Mark Rivers [mailto:[email protected]] 
Sent: December-09-15 1:36 PM
To: Cusick, Martin-Lee; [email protected]
Subject: RE: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine

Hi Lee,

Can you send the complete output when you do the following at the top level of base-3.14.12.3.

setenv EPICS_HOST_ARCH linux-x86
make clean
make

Note in your original message you said:

>  I have the gcc-multilib package, and lib32, and I followed this advice:
>  base/configure/os/CONFIG_SITE.linux-x86.Common:
 > # T.S, 2006/09/05

>  # add -m32 so we create 32-bit code when
> # executing on 64-bit machine with EPICS_HOST_ARCH=linux-x86
> ARCH_DEP_CFLAGS+=-m32
> ARCH_DEP_CXXFLAGS+=-m32
> ARCH_DEP_LDFLAGS+=-m32

The tech-talk link you pointed to was for a very old release of base, 3.14.8 which is when 64-bit support was just beginning. You should NOT make those edits in 3.14.12.3, it is all taken care of in the standard distribution.  I build linux-x86 on a 64-bit Linux system all the time without any edits to CONFIG_SITE.linux-x86.Common.

Mark


From: Cusick, Martin-Lee [mailto:[email protected]] 
Sent: Wednesday, December 09, 2015 12:19 PM
To: Mark Rivers; [email protected]
Subject: RE: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine

UNRESTRICTED / ILLIMITÉE
Hi Mark,

Thanks for the prompt reply. 

I did have the correct links, but I found this out with some tinkering it was actually a missing g++ library that solved my problem.

I had to install g++-multilib, that solved the libstdc++ link issue.

My three builds built, but I know have a separate issue. Please review it to determine if I should post it to another subject.

base/bin:

/usr/local/epics.bak/base-3.14.12.3/bin$ ls
linux-arm-rpi  linux-x86  linux-x86_64

ls arm:

/usr/local/epics.bak/base-3.14.12.3/bin$ ls linux-arm-rpi/
acctst        casw               iocLogServer
aitGen        ca_test            makeBaseApp.pl
antelope      catime             makeBaseExt.pl
ascheck       convertRelease.pl  makeBpt
caConnTest    cvsclean.pl        makeIncludeDbd.pl
caDirServ     dbExpand           makeMakefile.pl
caEventRate   dbReadTest         makeTestfile.pl
caget         dbToMenuH          mkmf.pl
caget.pl      dbToRecordtypeH    munch.pl
cainfo        dos2unix.pl        registerRecordDeviceDriver.pl
cainfo.pl     e_flex             replaceVAR.pl
camonitor     excas              S99caRepeater
camonitor.pl  expandVars.pl      S99logServer
capr.pl       filterWarnings.pl  softIoc
caput         fullPathName.pl    useManifestTool.pl
caput.pl      genApps
caRepeater    installEpics.pl

Which looks complete.

Ls x86_64:

/usr/local/epics.bak/base-3.14.12.3/bin$ ls linux-x86_64
acctst        casw               iocLogServer
aitGen        ca_test            makeBaseApp.pl
antelope      catime             makeBaseExt.pl
ascheck       convertRelease.pl  makeBpt
caConnTest    cvsclean.pl        makeIncludeDbd.pl
caDirServ     dbExpand           makeMakefile.pl
caEventRate   dbReadTest         makeTestfile.pl
caget         dbToMenuH          mkmf.pl
caget.pl      dbToRecordtypeH    munch.pl
cainfo        dos2unix.pl        registerRecordDeviceDriver.pl
cainfo.pl     e_flex             replaceVAR.pl
camonitor     excas              S99caRepeater
camonitor.pl  expandVars.pl      S99logServer
capr.pl       filterWarnings.pl  softIoc
caput         fullPathName.pl    useManifestTool.pl
caput.pl      genApps
caRepeater    installEpics.pl

Good.

Ls x86:

/usr/local/epics.bak/base-3.14.12.3/bin$ ls linux-x86
convertRelease.pl  filterWarnings.pl  makeBaseExt.pl     mkmf.pl
cvsclean.pl        fullPathName.pl    makeIncludeDbd.pl  munch.pl
dos2unix.pl        installEpics.pl    makeMakefile.pl    replaceVAR.pl
expandVars.pl      makeBaseApp.pl     makeTestfile.pl    useManifestTool.pl

Missing a lot of tools here.

Please tell me your thoughts.

Thanks so much,

Lee



From: Mark Rivers [mailto:[email protected]] 
Sent: December-09-15 12:24 PM
To: Cusick, Martin-Lee; [email protected]
Subject: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine

Are you sure you have installed both the 64-bit and 32-bit versions of the system library libstdc++.so?
 
Here are the files on my Fedora system:
 
7233436    0 lrwxrwxrwx   1 root     root           37 Apr 10  2012 /usr/lib/gcc/x86_64-redhat-linux/4.6.3/libstdc++.so -> ../../../../lib64/libstdc++.so.6.0.16
7233434    0 lrwxrwxrwx   1 root     root           31 Apr 10  2012 /usr/lib/gcc/x86_64-redhat-linux/4.6.3/32/libstdc++.so -> ../../../../libstdc++.so.6.0.16
 
Note that there are both 64-bit and 32-bit versions of that library.
 
Do you find both 64-bit and 32-bit versions of libstdc++.so on your system?
 
Mark
 
 
From: [email protected] [mailto:[email protected]] On Behalf Of Cusick, Martin-Lee
Sent: Wednesday, December 09, 2015 9:00 AM
To: [email protected]
Subject: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine
 
OFFICIAL USE ONLY / À USAGE EXCLUSIF
Hello,
 
I will start will giving some of the environment details:
 
Host Machine:
 
Ubuntu 12.04 (3.13.0-71-generic kernel) x86_64
 
I am building IOC's for 64 and 32-bit machines; I am also cross compiling for ARM (Raspberry Pi), with crosstools-ng.
 
The build is successful for 64 bit binaries and the 32-bit cross compile, but I keep getting an error for x86:
 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make[3]: *** [libCom.so.3.14] Error 1
make[3]: Leaving directory `/usr/local/epics.bak/base-3.14.12.3/src/libCom/O.linux-x86'
make[2]: *** [install.linux-x86] Error 2
make[2]: Leaving directory `/usr/local/epics.bak/base-3.14.12.3/src/libCom'
make[1]: *** [libCom.install] Error 2
make[1]: Leaving directory `/usr/local/epics.bak/base-3.14.12.3/src'
make: *** [src.install] Error 2
 
I have the gcc-multilib package, and lib32, and I followed this advice:
 
base/configure/os/CONFIG_SITE.linux-x86.Common:
 
# T.S, 2006/09/05
# add -m32 so we create 32-bit code when
# executing on 64-bit machine with EPICS_HOST_ARCH=linux-x86
ARCH_DEP_CFLAGS+=-m32
ARCH_DEP_CXXFLAGS+=-m32
ARCH_DEP_LDFLAGS+=-m32
 
Thanks you in advance for your help,
 
Lee
 
 
 


Replies:
Re: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Michael Davidsaver
References:
EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Cusick, Martin-Lee
RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Mark Rivers
RE: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Cusick, Martin-Lee
RE: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Mark Rivers

Navigate by Date:
Prev: Re: Proposed change to asyn drvAsynIPPort for UDP sockets Torsten bögershaus
Next: Re: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Michael Davidsaver
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: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Mark Rivers
Next: Re: [External] RE: EPICS BASE-3.14.12.3 32-bit Binaries on 64-bit host Machine Michael Davidsaver
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 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·