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  2021  <20222023  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  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Re: Getting Permission denied messages while building
From: "Barrett \(US\), Patrick E via Tech-talk" <tech-talk at aps.anl.gov>
To: "anj at anl.gov" <anj at anl.gov>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 27 Apr 2022 17:47:55 +0000

I found the issue. I had replaced the HDEPENDS_METHOD and HDEPENDS_COMPFLAGS in CONFIG.gnuCommon.  Returning them to the default from the base code fixed the issue.

 

Thank you for the help,

Patrick

 

From: Andrew Johnson <anj at anl.gov>
Sent: Friday, April 22, 2022 7:21 PM
To: Barrett (US), Patrick E <patrick.e.barrett at boeing.com>
Subject: [EXTERNAL] Re: Getting Permission denied messages while building

 

EXT email: be mindful of links/attachments.


 

Hi Patrick,

I took tech-talk off my cc: list.

On 4/21/22 4:43 PM, Barrett (US), Patrick E wrote:

I added a RULES_USER with the additional targets, thank you.  When running make PRINT.HDEPENDS.c, I get:

[master@scwksXX ioc]$ make PRINT.HDEPENDS.c

HDEPENDS.c = ''

[master@scwksXX ioc]$ make PRINT.COMPILE.c

COMPILE.c = 'cc    -c'

You have to run those make commands from inside a O.linux-x86_64 directory to see the values that they will have when compiling the code:


tux% make PRINT.HDEPENDS.c PRINT.COMPILE.c
make -f ../Makefile TOP=../../../../.. T_A=linux-x86_64  PRINT.HDEPENDS.c
make[1]: Entering directory '/home/phoebus4/ANJ/epics/base/3.15/src/ioc/db/test/O.linux-x86_64'
HDEPENDS.c = '/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3   -Wall      -mtune=generic     -m64 -Wpointer-arith -fvisibility=hidden  -I. -I../O.Common -I. -I. -I.. -I../../../../../include/compiler/gcc -I../../../../../include/os/Linux -I../../../../../include         -MM -MF PRINT.HDEPENDS.c '
make[1]: Leaving directory '/home/phoebus4/ANJ/epics/base/3.15/src/ioc/db/test/O.linux-x86_64'
make -f ../Makefile TOP=../../../../.. T_A=linux-x86_64  PRINT.COMPILE.c
make[1]: Entering directory '/home/phoebus4/ANJ/epics/base/3.15/src/ioc/db/test/O.linux-x86_64'
COMPILE.c = '/usr/bin/gcc  -D_GNU_SOURCE -D_DEFAULT_SOURCE            -D_X86_64_  -DUNIX  -Dlinux     -O3   -Wall      -mtune=generic     -m64 -Wpointer-arith -fvisibility=hidden  -I. -I../O.Common -I. -I. -I.. -I../../../../../include/compiler/gcc -I../../../../../include/os/Linux -I../../../../../include        '
make[1]: Leaving directory '/home/phoebus4/ANJ/epics/base/3.15/src/ioc/db/test/O.linux-x86_64'
tux% cd ..
tux% make PRINT.HDEPENDS.c PRINT.COMPILE.c
HDEPENDS.c = ''
COMPILE.c = 'cc    -c'




So the issue seems to only be in the header dependency section, because it does compile. 

 

We did add the following to CONFIG_COMMON, which could probably be moved:

INCLUDES = -I../../include

INCLUDES += -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\

$(TARGET_INCLUDES) $(USR_INCLUDES) $(CMD_INCLUDES) $(OP_SYS_INCLUDES)\

$($(BUILD_CLASS)_INCLUDES)

That change looks harmless, although it will cause every single build in Base or a support module to search for an include directory in the parent of every source directory when compiling a C or C++ file. The search path is relative to each O.linux-x86_64 directory where the compilation takes place. It could slow down your builds somewhat, and it seems like it only ought to be needed in the places where you have such an include directory, not for every EPICS build you ever do with this version of Base. I recommend that wherever you need it that you do this in the associated Makefile instead, which I think will have the same effect:

SRC_DIRS += ../../include




I am not sure why that would have an affect on the HDEPENDS part though.  The last run was in src/ioc and the code did compile, but I still have the error messages throughout the compile.


The "
execvp: ../*.c: Permission denied" errors occur everywhere, not just in the src/ioc/db/test build directory? That wasn't clear from your previous messages. When hunting the causes of build errors, always try to fix the first errors you get first, that way you don't get misled tracking down secondary problems caused by earlier failures. You might have missed some other error early on in the build which could explain what's going on here.

I have no idea how your INCLUDES change could affect the HDEPENDS functionality, and it doesn't seem likely to be the cause. However at this point I think it might be quickest if you could try building a completely unmodified copy of Base-3.15.9 and then slowly add your changes into that until you discover what starts to trigger the errors.

HTH,

- Andrew


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

Navigate by Date:
Prev: Re: pyDevSup and PyDevice: Virtual Environment Michael Davidsaver via Tech-talk
Next: areaDetector ImageJ EPICS_AD_VIEWER Petra Schwalbach 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  2021  <20222023  2024 
Navigate by Thread:
Prev: RE: Re: Getting Permission denied messages while building Barrett (US), Patrick E via Tech-talk
Next: Waveforms in Archiver Appliance John Dobbins 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  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·