Closed aerorahul closed 3 years ago
Can someone else please verify this @kgerheiser?
Can confirm. I get the same error.
cfe.h is a header file that is included (via "#include cfe.h") within the dlloctbf.c file in the src directory. I don't have a macOS to test on, so not sure what to say here other than this looks like some sort of include issue(?) FWIW, cfe.h is included within the c_hdr list inside of src/list_of_files.cmake
Maybe there's some additional compiler flag or option/setting that's needed under macOS, even though it's still the Gnu compiler? Just asking b/c it works fine using Gnu 4.8.5, as well as under the more recent Gnu version in the CI environment.
It is a little strange. I don't see how cfe
could not be present. It's included in dlloctbf
at compile time.
@kgerheiser I see it included when the library is compiled.
Is there a timeline for this? Most of our DA developers are using a macOS and this failure in the library test is causing issues at our end.
May be put a warning that this library is not supported on macOS or disable the tests on APPLE
My thought of what's happening is this:
cfe
is extern, unless you're in inittbf
dlloctbf
is being called by EXITBUFR
(cfe
is extern)
There is no call to inittbf
(where cfe
not extern)
We are using static libraries so only necessary symbols are resolved (no call to inittbf
-> no non-extern cfe
-> undefined symbol)
So there's this extern
variable with no matching variable definition because there's no call to inittbf
.
Why this shows up on Mac only must have something to do with its linker.
Update:
Building with shared libraries resolves the problem
Calling inittbf
from inside the routine resolves the problem
The real solution to this issue might be changing the way cfe
is defined. I'll think about it a little bit more.
Following the latest merge into
develop
, the test_OUT_3_4_DA.x fails on macOS with GNU 9.3.0