Bug#1068708: Building with EPICS fails because the compiler cannot find `compilerSpecific.h`.
Florian Forster
ff at octo.it
Wed Apr 10 14:40:11 BST 2024
Hi Andrius,
pkg-config references paths (/build/reproducible-path/…) that likely exist
on the build system, but are not provided by the package:
```
# pkg-config epics-base --cflags | sed -e 's/ */\n/g'
-I/build/reproducible-path/epics-base-7.0.8+dfsg1/include
-I/build/reproducible-path/epics-base-7.0.8+dfsg1/include/os/Linux
-I/build/reproducible-path/epics-base-7.0.8+dfsg1/include/compiler/gcc
-D_GNU_SOURCE
-D_DEFAULT_SOURCE
-D_X86_64_
-DUNIX
-Dlinux
-ffile-prefix-map=/build/reproducible-path/epics-base-7.0.8+dfsg1=.
-D_FORTIFY_SOURCE=2
-ffile-prefix-map=/build/reproducible-path/epics-base-7.0.8+dfsg1=.
-fstack-protector-strong
-fstack-clash-protection
-fcf-protection
-D_FORTIFY_SOURCE=2
-mtune=generic
-m64
# dpkg -L epics-dev | grep /build; echo $?
1
```
Unrelated to this bug: my recommendation would be to keep the CPP flags
(`-I`, `-D`) and remove the C flags (`-f`, `-m`).
> What compiler do you use?
We test our project with GCC and clang.
> Does this patch work for you?
Kind of. It fixes the compiler specific include described in the initial
report, but fails to find an OS specific include:
```
In file included from /usr/include/epics/cadef.h:35,
from src/epics.c:26:
/usr/include/epics/epicsThread.h:468:10: fatal error: osdThread.h: No such
file or directory
468 | #include "osdThread.h"
| ^~~~~~~~~~~~~
```
> Can you as well try to add /usr/include/compiler/gcc to your compiler's
include path?
That path alone is not enough, but this works:
```
make CPPFLAGS="-I/usr/include/epics -I/usr/include/epics/compiler/gcc
-I/usr/include/epics/os/Linux"
```
Thanks for your time and effort maintaining this package, I appreciate it!
—octo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20240410/340d83da/attachment.htm>
More information about the debian-science-maintainers
mailing list