This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Build libgcc_s on Windows


Aaron W. LaFramboise wrote:
Paolo Bonzini wrote:

+  if (pe_dll) {
+    # This matches SHLIB_SONAME in config/i386/t-cygming.
+    print "LIBRARY " pe_dll;
+    print "EXPORTS";
+  }

so that in the future it will suffice to have Windows maintainer approval if you change the soname.

I actually tried this, but this doesn't work, because at the time mkmap is run, the base soname has not yet been substituted, so you end up with @something@_1.dll or something. Maybe I'll think of a more creative way to do this so its not duplicated.

Right. I guess your patch is then okay from this build maintainer.


Howeever, if you want to do this cleanup, it's easy enough: in libgcc/Makefile.in you should change $(SHLIB_MKMAP_OPTS) to $(subst @shlib_base_name@,libgcc_s,$(SHLIB_MKMAP_OPTS)).

Bonus points if you change all the occurrences of

$(subst @multilib_flags@,$(CFLAGS) -B./,$(subst \
                @multilib_dir@,$(MULTIDIR),$(subst \
                @shlib_objs@,$(objects),$(subst \
                @shlib_base_name@,SOME_BASE_NAME,$(subst \
                @shlib_map_file@,$(mapfile),$(subst \
                @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
                @shlib_slibdir@,$(shlib_slibdir),$(SOME_VAR))))))))

to something like

$(call replace_shlib_vars,SOME_BASE_NAME,$(SOME_VAR))

using an auxiliary variable definition like this one:

replace_shlib_vars = $(subst @multilib_flags@,$(CFLAGS) -B./,$(subst \
                @multilib_dir@,$(MULTIDIR),$(subst \
                @shlib_objs@,$(objects),$(subst \
                @shlib_base_name@,$(1),$(subst \
                @shlib_map_file@,$(mapfile),$(subst \
                @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
                @shlib_slibdir@,$(shlib_slibdir),$(2))))))))

Thanks in advance, :-P

Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]