Hi Florian,

On 2024-04-09 16:38, Florian Forster wrote:
Building with EPICS fails because the compiler cannot find `compilerSpecific.h`:

```
In file included from /usr/include/epics/epicsThread.h:62,
                  from /usr/include/epics/cadef.h:35,
                  from src/epics.c:26:
/usr/include/epics/compilerDependencies.h:21:10: fatal error: compilerSpecific.h: No such file or directory
   21 | #include "compilerSpecific.h"
      | ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:8195: src/epics_la-epics.lo] Error 1
```

The file exists at `/usr/include/epics/compiler/gcc/compilerSpecific.h`, which is not a directory searched by the compiler.

According to /usr/share/pkgconfig/epics-base.pc, /usr/include/compiler/gcc should be added to include path when compiling.

`"compilerSpecific.h"` isincluded unconditionally, and fails when not compiled with GCC. My recommendation is to guard the inclusion of the file with an appropriate check, for example:

```
// /usr/include/epics/compilerDependencies.h, line 21
#if __GNUC__
# include "compiler/gcc/compilerSpecific.h"
#endif
```

What compiler do you use? Does this patch work for you? If so, it is probably worth upstreaming it. Can you as well try to add
/usr/include/compiler/gcc to your compiler's include path?

Best wishes,
Andrius

Reply via email to