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  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  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  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS in Docker image Build Error base-3.15.6 (alpine linux)
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: Josh Fiddler <[email protected]>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Tue, 20 Apr 2021 23:33:38 +0000
Hi Josh,

Welcome to the EPICS community!

On Apr 20, 2021, at 6:07 PM, Josh Fiddler via Tech-talk <tech-talk at aps.anl.gov> wrote:
> 
> I have what seems to be a unique problem. 

Apparently, but it should be easily solvable...

> To build the MDSplus EPICS interface requirements I appear to need the MDSplus libraries. MDSplus provides a docker image based on Alpine linux. I've added the required build tools with `apk`. 

I don’t know of anyone using Alpine Linux with EPICS yet, but we're a pretty big community now.

...


> Everything goes swimmingly, so far as I can tell, until it comes to `src/libCom/osi` and then  the compiler complains and quits. Here's the error
> 
> ############# Begin Error snippet  #############
> usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3 -g   -Wall      -mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I../../../src/libCom/osi/compiler/gcc -I../../../src/libCom/osi/compiler/default -I. -I../../../src/libCom/osi/os/Linux -I../../../src/libCom/osi/os/posix -I../../../src/libCom/osi/os/default -I.. -I../../../src/libCom/as -I../../../src/libCom/bucketLib -I../../../src/libCom/calc -I../../../src/libCom/cvtFast -I../../../src/libCom/cppStd -I../../../src/libCom/cxxTemplates -I../../../src/libCom/dbmf -I../../../src/libCom/ellLib -I../../../src/libCom/env -I../../../src/libCom/error -I../../../src/libCom/fdmgr -I../../../src/libCom/flex -I../../../src/libCom/freeList -I../../../src/libCom/gpHash -I../../../src/libCom/iocsh -I../../../src/libCom/log -I../../../src/libCom/macLib -I../../../src/libCom/misc -I../../../src/libCom/osi -I../../../src/libCom/pool -I../../../src/libCom/ring -I../../../src/libCom/taskwd -I../../../src/libCom/timer -I../../../src/libCom/yacc -I../../../src/libCom/yacc -I../../../src/libCom/yajl -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include         -c ../../../src/libCom/env/envSubr.c
> ../../../src/libCom/env/envSubr.c: In function 'envGetInetPortConfigParam':
> ../../../src/libCom/env/envSubr.c:411:21: error: 'IPPORT_USERRESERVED' undeclared (first use in this function)
>      if (epicsParam<=IPPORT_USERRESERVED || epicsParam>USHRT_MAX) {
>                      ^~~~~~~~~~~~~~~~~~~
> ../../../src/libCom/env/envSubr.c:411:21: note: each undeclared identifier is reported only once for each function it appears in
> make[3]: *** [../../../configure/RULES_BUILD:232: envSubr.o] Error 1
> make[3]: Leaving directory '/epics/base-3.15.6/src/libCom/O.linux-x86_64'
> make[2]: *** [../../configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
> make[2]: Leaving directory '/epics/base-3.15.6/src/libCom'
> make[1]: *** [../configure/RULES_DIRS:84: libCom.install] Error 2
> make[1]: Leaving directory '/epics/base-3.15.6/src'
> ############# END ERROR SNIPPET #############  
> 
> The Asks:
> 1) Is there anyone who has some insights into this error or has built in Alpine?

The macro IPPORT_USERRESERVED is defined in /usr/include/netinet/in.h in my Linux (RHEL-7) system so my guess is that you need some networking -devel or similar package to be installed that provides that header or an equivalent. It’s definitely a standard networking constant so you just have to work out how to get hold of the right headers.

Our build documentation is somewhat out of date. If you want to test your build after it’s done, run ‘make runtests’ and it will execute the built-in test programs and report the results – always a good thing to do after building on a new OS-type.

Good luck!

- Andrew

-- 
Complexity comes for free, simplicity you have to work for.


Replies:
Re: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Tynan Ford via Tech-talk
Re: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Josh Fiddler via Tech-talk
References:
EPICS in Docker image Build Error base-3.15.6 (alpine linux) Josh Fiddler via Tech-talk

Navigate by Date:
Prev: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Josh Fiddler via Tech-talk
Next: Re: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Tynan Ford via Tech-talk
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  <20212022  2023  2024 
Navigate by Thread:
Prev: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Josh Fiddler via Tech-talk
Next: Re: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Tynan Ford via Tech-talk
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  <20212022  2023  2024 
ANJ, 22 Apr 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·