[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [UNIKRAFT PATCH 1/3] build: Support multiple symbol export files
Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx> On Wed, Apr 8, 2020 at 2:11 AM Simon Kuenzer <simon.kuenzer@xxxxxxxxx> wrote: > > Adds support that `$(LIBNAME_EXPORTS)` can contain a list of symbol > export files instead of only a single one. In order to simplify > writing of `Makefile.uk` files, a `$(LIBNAME_EXPORTS-y)` variant is > provided, too. With this variant, export symbols can be dependent to > library configuration, for example: > LIBNAME_EXPORTS-$(CONFIG_MYLIB_EXTENDEDABI) += extendedsyms.uk > Having this feature, library symbols can be masked even without the > existence of a single `exportsyms.uk` file: Because of this, this > patch removes the "missing exportsyms.uk"-warning. In the case an > `exportsyms.uk` file exists for a library, it is still automatically > included and used: The previous behavior is preserved. > > Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > --- > support/build/Makefile.rules | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/support/build/Makefile.rules b/support/build/Makefile.rules > index af08f830..384f24f0 100644 > --- a/support/build/Makefile.rules > +++ b/support/build/Makefile.rules > @@ -189,7 +189,7 @@ $(call mk_sub_build_dir,$(1)) > UK_LIBS += $(1) > $(eval $(call uc,$(1))_BASE := $(_IMPORT_BASE)) > $(eval $(call uc,$(1))_BUILD := $(BUILD_DIR)/$(1)) > -$(eval $(call uc,$(1))_EXPORTS := $(_IMPORT_BASE)/exportsyms.uk) > +$(eval $(call uc,$(1))_EXPORTS += $(wildcard $(_IMPORT_BASE)/exportsyms.uk)) > endef > > # addlib_s $libname,$switch > @@ -206,7 +206,7 @@ $(eval $(call uc,$(2))_PLATS += $(call uc,$(1))) > $(eval $(call uc,$(1))_LIBS += $(2)) > $(eval $(call uc,$(2))_BASE := $(_IMPORT_BASE)) > $(eval $(call uc,$(2))_BUILD := $(BUILD_DIR)/$(2)) > -$(eval $(call uc,$(2))_EXPORTS := $(_IMPORT_BASE)/exportsyms.uk) > +$(eval $(call uc,$(2))_EXPORTS += $(wildcard $(_IMPORT_BASE)/exportsyms.uk)) > endef > > # addplatlib_s $platname,$libname,$switch > @@ -718,10 +718,6 @@ endef > > # buildrule_olib $libname > define buildrule_olib = > -$(if $(wildcard $($(call vprefix_lib,$(1),EXPORTS))),,\ > - $(call verbose_info,Warning: Definition of exported symbols for $(1) > missing: $($(call vprefix_lib,$(1),EXPORTS))) \ > -) > - > $(call libname2preolib,$(1)): $($(call vprefix_lib,$(1),OBJS)) \ > $($(call vprefix_lib,$(1),OBJS-y)) \ > $($(call vprefix_lib,$(1),ALIBS)) \ > @@ -742,9 +738,10 @@ $(call libname2preolib,$(1)): $($(call > vprefix_lib,$(1),OBJS)) \ > -Wl$(comma)--end-group \ > -o $(call libname2preolib,$(1))) > > -$(call libname2olib,$(1)): $(call libname2preolib,$(1)) $(if $(wildcard > $($(call vprefix_lib,$(1),EXPORTS))),$($(call vprefix_lib,$(1),EXPORTS)),) > +$(call libname2olib,$(1)): $(call libname2preolib,$(1)) \ > + $($(call vprefix_lib,$(1),EXPORTS)) $($(call > vprefix_lib,$(1),EXPORTS-y)) \ > $(call build_cmd,OBJCOPY,,$(call libname2olib,$(1)),\ > - $(OBJCOPY) $(if $(wildcard $($(call > vprefix_lib,$(1),EXPORTS))),--keep-global-symbols=$($(call > vprefix_lib,$(1),EXPORTS)),) \ > + $(OBJCOPY) $(addprefix --keep-global-symbols=,$($(call > vprefix_lib,$(1),EXPORTS)) $($(call vprefix_lib,$(1),EXPORTS-y))) \ > $(OBJCFLAGS) $(OBJCFLAGS-y) \ > $($(call vprefix_lib,$(1),OBJCFLAGS)) $($(call > vprefix_lib,$(1),OBJCFLAGS-y)) \ > $(call libname2preolib,$(1)) $(call > libname2olib,$(1))) > -- > 2.20.1 > >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |