Skip to content
Snippets Groups Projects
Commit 4c0e2293 authored by Mike Hommey's avatar Mike Hommey
Browse files

Bug 956398 - Error out at build time if we end up with text relocations. r=ted

parent ec7b1e07
No related branches found
No related tags found
No related merge requests found
...@@ -830,7 +830,7 @@ EXPAND_MKSHLIB = $(EXPAND_LIBS_EXEC) $(EXPAND_MKSHLIB_ARGS) -- $(MKSHLIB) ...@@ -830,7 +830,7 @@ EXPAND_MKSHLIB = $(EXPAND_LIBS_EXEC) $(EXPAND_MKSHLIB_ARGS) -- $(MKSHLIB)
ifneq (,$(MOZ_LIBSTDCXX_TARGET_VERSION)$(MOZ_LIBSTDCXX_HOST_VERSION)) ifneq (,$(MOZ_LIBSTDCXX_TARGET_VERSION)$(MOZ_LIBSTDCXX_HOST_VERSION))
ifneq ($(OS_ARCH),Darwin) ifneq ($(OS_ARCH),Darwin)
CHECK_STDCXX = objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | | We do not want these libstdc++ symbols to be used:' && objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' && exit 1 || exit 0 CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' && false || true
endif endif
ifdef MOZ_LIBSTDCXX_TARGET_VERSION ifdef MOZ_LIBSTDCXX_TARGET_VERSION
...@@ -841,6 +841,15 @@ HOST_EXTRA_LIBS += $(call EXPAND_LIBNAME_PATH,host_stdc++compat,$(DEPTH)/build/u ...@@ -841,6 +841,15 @@ HOST_EXTRA_LIBS += $(call EXPAND_LIBNAME_PATH,host_stdc++compat,$(DEPTH)/build/u
endif endif
endif endif
ifeq (,$(filter $(OS_TARGET),WINNT Darwin OS2))
CHECK_TEXTREL = @$(TOOLCHAIN_PREFIX)readelf -d $(1) | grep TEXTREL > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_textrel | We do not want text relocations in libraries and programs' || true
endif
define CHECK_BINARY
$(call CHECK_STDCXX,$(1))
$(call CHECK_TEXTREL,$(1))
endef
# autoconf.mk sets OBJ_SUFFIX to an error to avoid use before including # autoconf.mk sets OBJ_SUFFIX to an error to avoid use before including
# this file # this file
OBJ_SUFFIX := $(_OBJ_SUFFIX) OBJ_SUFFIX := $(_OBJ_SUFFIX)
......
...@@ -763,7 +763,7 @@ ifdef MOZ_PROFILE_GENERATE ...@@ -763,7 +763,7 @@ ifdef MOZ_PROFILE_GENERATE
endif endif
else # !WINNT || GNU_CC else # !WINNT || GNU_CC
$(EXPAND_CCC) -o $@ $(CXXFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(LIBS_DIR) $(LIBS) $(MOZ_GLUE_PROGRAM_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE) $(STLPORT_LIBS) $(EXPAND_CCC) -o $@ $(CXXFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(LIBS_DIR) $(LIBS) $(MOZ_GLUE_PROGRAM_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE) $(STLPORT_LIBS)
@$(call CHECK_STDCXX,$@) $(call CHECK_BINARY,$@)
endif # WINNT && !GNU_CC endif # WINNT && !GNU_CC
ifdef ENABLE_STRIP ifdef ENABLE_STRIP
...@@ -819,7 +819,7 @@ ifdef MSMANIFEST_TOOL ...@@ -819,7 +819,7 @@ ifdef MSMANIFEST_TOOL
endif # MSVC with manifest tool endif # MSVC with manifest tool
else else
$(EXPAND_CCC) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(LIBS_DIR) $(LIBS) $(MOZ_GLUE_PROGRAM_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(STLPORT_LIBS) $(EXPAND_CCC) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(LIBS_DIR) $(LIBS) $(MOZ_GLUE_PROGRAM_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(STLPORT_LIBS)
@$(call CHECK_STDCXX,$@) $(call CHECK_BINARY,$@)
endif # WINNT && !GNU_CC endif # WINNT && !GNU_CC
ifdef ENABLE_STRIP ifdef ENABLE_STRIP
...@@ -921,7 +921,7 @@ endif ...@@ -921,7 +921,7 @@ endif
else # ! DTRACE_LIB_DEPENDENT else # ! DTRACE_LIB_DEPENDENT
$(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS)) $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
endif # DTRACE_LIB_DEPENDENT endif # DTRACE_LIB_DEPENDENT
@$(call CHECK_STDCXX,$@) $(call CHECK_BINARY,$@)
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH)) ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
ifdef MSMANIFEST_TOOL ifdef MSMANIFEST_TOOL
......
...@@ -4462,6 +4462,8 @@ AC_SUBST(MOZILLA_VERSION) ...@@ -4462,6 +4462,8 @@ AC_SUBST(MOZILLA_VERSION)
AC_SUBST(ac_configure_args) AC_SUBST(ac_configure_args)
AC_SUBST(TOOLCHAIN_PREFIX)
dnl Spit out some output dnl Spit out some output
dnl ======================================================== dnl ========================================================
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment