------- Comment #41 from howarth at nitro dot med dot uc dot edu 2009-09-25 23:51 ------- Iain, I just puzzled out a solution for keeping the symbols constantly updated for libgcc-ext*. We make the following changes to your patch...
1) The files gcc/config/rs6000/darwin-libgcc-ext-32B-10.4.ver and gcc/config/rs6000/darwin-libgcc-ext-64B-10.4.ver are made to be exact copies of gcc/config/rs6000/darwin-libgcc.10.4.ver 2) The files gcc/config/rs6000/darwin-libgcc-ext-32B-10.5.ver and gcc/config/rs6000/darwin-libgcc-ext-64B-10.5.ver are made to be exact copies of gcc/config/rs6000/darwin-libgcc.10.5.ver 3) The files gcc/config/i386/darwin-libgcc-ext-32B-10.4.ver and gcc/config/i386/darwin-libgcc-ext-64B-10.4.ver are made to be exact copies of gcc/config/i386/darwin-libgcc.10.4.ver 4) The files gcc/config/i386/darwin-libgcc-ext-32B-10.5.ver and gcc/config/i386/darwin-libgcc-ext-64B-10.5.ver are made to be exact copies of gcc/config/i386/darwin-libgcc.10.5.ver 5) The section of your patch... +EXLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \ + -install_name @exlibdir@/$(EXLIB_SONAME) \ + -single_module -o @multilib_dir@/$(EXLIB_SONAME) \ + -Wl,-exported_symbols_list,@exlib_map_file@ \ + $(EXLIB_VERSTRING) \ + @multilib_flags@ @exlib_objs@ @exlib_other_lib@ $(SHLIB_LC) + is change to... +EXLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \ + -install_name @exlibdir@/$(EXLIB_SONAME) \ + -single_module -o @multilib_dir@/$(EXLIB_SONAME) \ + -Wl,-unexported_symbols_list,@exlib_map_file@ \ + $(EXLIB_VERSTRING) \ + @multilib_flags@ @exlib_objs@ @exlib_other_lib@ $(SHLIB_LC) + This seems to work here on x86_64-apple-darwin10. All of the symbols left in libgcc-ext not in the symbol list to unexport are left exported automatically. No need to assemble or maintain any lists. The remaining question is can your patch be refactored to eliminate the need for so many *.ver files now that they shared common contents with darwin-libgcc.10.4.ver and darwin-libgcc.10.5.ver. That is, can reduced the list of new *.ver files to just darwin-libgcc-ext-10.4.ver and darwin-libgcc-ext-10.5.ver. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39888