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

Reply via email to