Eric Botcazou wrote:
Since Geoff is worried about future binary compatibility apparently, it
would probably be easier to modify gnatlink.adb to emit -static-libgcc or
-shared-libgcc depending on whether static or shared gnatlib is used.
The problem is that passing -static-libgcc unconditionally can theoritically
cause problems on Linux when C code using POSIX threads is linked. So we
would need to do that only on Darwin.
Then set a var in link.c for darwin and use that as the conditional?
#elif defined(__APPLE__)
const char *__gnat_run_path_option = "-Wl,-filelist";
const char *__gnat_object_file_option = "";
char __gnat_shared_libgnat_default = STATIC;
int __gnat_link_max = 262144;
unsigned char __gnat_objlist_file_supported = 1;
unsigned char __gnat_using_gnu_linker = 0;
const char *__gnat_object_library_extension = ".a";
unsigned char __gnat_darwin_idiocy = 1;
#else
...
You'd have to add the idiocy flag elsewhere too and default to 0.
Peter