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.