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

Reply via email to