| Index: native_client_sdk/src/tools/host_gcc.mk
|
| diff --git a/native_client_sdk/src/tools/host_gcc.mk b/native_client_sdk/src/tools/host_gcc.mk
|
| index 18160ea653157e07dbda6c40737f3c8f336a61d8..7d71de33a191bb57c5e2d6e6778cacd6aea2b5ae 100644
|
| --- a/native_client_sdk/src/tools/host_gcc.mk
|
| +++ b/native_client_sdk/src/tools/host_gcc.mk
|
| @@ -17,14 +17,23 @@
|
| CC ?= $(NACL_COMPILER_PREFIX) gcc
|
| CXX ?= $(NACL_COMPILER_PREFIX) g++
|
| LINK ?= $(CXX)
|
| -LIB ?= ar
|
| +AR ?= ar
|
| +ARFLAGS = -crs
|
| STRIP ?= strip
|
|
|
| +
|
| +ifneq ($(OSNAME),mac)
|
| # Adding -Wl,-Bsymbolic means that symbols defined within the module are always
|
| -# used by the moulde, and not shadowed by symbols already loaded in, for
|
| +# used by the module, and not shadowed by symbols already loaded in, for
|
| # exmaple, libc. Without this the libc symbols (or anything injected with
|
| # LD_PRELOAD will take precedence).
|
| -HOST_LDFLAGS ?= -Wl,-Map,$(OUTDIR)/$(TARGET).map -Wl,-Bsymbolic
|
| +# -pthread is not needed on mac (libpthread is a symlink to libSystem) and
|
| +# in fact generated a warning if passed at link time.
|
| +HOST_LDFLAGS ?= -Wl,-Map,$(OUTDIR)/$(TARGET).map -Wl,-Bsymbolic -pthread
|
| +else
|
| +HOST_LDFLAGS ?= -Wl,-map -Wl,$(OUTDIR)/$(TARGET).map
|
| +endif
|
| +
|
|
|
| ifeq (,$(findstring gcc,$(shell $(WHICH) gcc)))
|
| $(warning To skip the host build use:)
|
| @@ -45,14 +54,14 @@ HOST_CFLAGS = -fPIC -pthread $(HOST_WARNINGS) -I$(NACL_SDK_ROOT)/include -I$(NAC
|
| define C_COMPILER_RULE
|
| -include $(call SRC_TO_DEP,$(1))
|
| $(call SRC_TO_OBJ,$(1)): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
|
| - $(call LOG,CC ,$$@,$(CC) -o $$@ -c $$< -fPIC $(POSIX_FLAGS) $(HOST_CFLAGS) $(2))
|
| + $(call LOG,CC ,$$@,$(CC) -o $$@ -c $$< -fPIC $(POSIX_CFLAGS) $(HOST_CFLAGS) $(2))
|
| @$(FIXDEPS) $(call SRC_TO_DEP_PRE_FIXUP,$(1))
|
| endef
|
|
|
| define CXX_COMPILER_RULE
|
| -include $(call SRC_TO_DEP,$(1))
|
| $(call SRC_TO_OBJ,$(1)): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
|
| - $(call LOG,CXX ,$$@,$(CXX) -o $$@ -c $$< -fPIC $(POSIX_FLAGS) $(HOST_CFLAGS) $(2))
|
| + $(call LOG,CXX ,$$@,$(CXX) -o $$@ -c $$< -fPIC $(POSIX_CFLAGS) $(HOST_CFLAGS) $(2))
|
| @$(FIXDEPS) $(call SRC_TO_DEP_PRE_FIXUP,$(1))
|
| endef
|
|
|
| @@ -99,7 +108,7 @@ all: $(LIBDIR)/$(OSNAME)_host/$(CONFIG)/lib$(1).a
|
| $(LIBDIR)/$(OSNAME)_host/$(CONFIG)/lib$(1).a: $(foreach src,$(2),$(call SRC_TO_OBJ,$(src)))
|
| $(MKDIR) -p $$(dir $$@)
|
| $(RM) -f $$@
|
| - $(call LOG,LIB,$$@,$(LIB) -cr $$@ $$^)
|
| + $(call LOG,LIB,$$@,$(AR) $(ARFLAGS) $$@ $$^)
|
| endef
|
|
|
|
|
| @@ -117,13 +126,13 @@ ifdef STANDALONE
|
| define LINKER_RULE
|
| all: $(1)
|
| $(1): $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
|
| - $(call LOG,LINK,$$@,$(LINK) -o $(1) $(2) $(HOST_LDFLAGS) $(NACL_LDFLAGS) $(LDFLAGS) $(foreach path,$(5),-L$(path)/$(OSNAME)_host)/$(CONFIG) $(foreach lib,$(3),-l$(lib)) $(6))
|
| + $(call LOG,LINK,$$@,$(LINK) -o $(1) $(2) $(HOST_LDFLAGS) $(LDFLAGS) $(foreach path,$(5),-L$(path)/$(OSNAME)_host)/$(CONFIG) $(foreach lib,$(3),-l$(lib)) $(6))
|
| endef
|
| else
|
| define LINKER_RULE
|
| all: $(1)
|
| $(1): $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
|
| - $(call LOG,LINK,$$@,$(LINK) -shared -o $(1) $(2) $(HOST_LDFLAGS) $(NACL_LDFLAGS) $(LDFLAGS) $(foreach path,$(5),-L$(path)/$(OSNAME)_host)/$(CONFIG) $(foreach lib,$(3),-l$(lib)) $(6))
|
| + $(call LOG,LINK,$$@,$(LINK) -shared -o $(1) $(2) $(HOST_LDFLAGS) $(LDFLAGS) $(foreach path,$(5),-L$(path)/$(OSNAME)_host)/$(CONFIG) $(foreach lib,$(3),-l$(lib)) $(6))
|
| endef
|
| endif
|
|
|
| @@ -147,8 +156,8 @@ all: $(LIB_LIST) $(DEPS_LIST)
|
|
|
| #
|
| # Strip Macro
|
| -# The host build makes shared libraries, so the best we can do is strip-debug.
|
| -# We cannot strip the symbol names.
|
| +# The host build makes shared libraries, so the best we can do is -S, which
|
| +# only strip debug symbols. We don't strip the symbol names.
|
| #
|
| # $1 = Target Name
|
| # $2 = Input Name
|
| @@ -156,7 +165,7 @@ all: $(LIB_LIST) $(DEPS_LIST)
|
| define STRIP_RULE
|
| all: $(OUTDIR)/$(1)$(HOST_EXT)
|
| $(OUTDIR)/$(1)$(HOST_EXT): $(OUTDIR)/$(2)$(HOST_EXT)
|
| - $(call LOG,STRIP,$$@,$(STRIP) --strip-debug -o $$@ $$^)
|
| + $(call LOG,STRIP,$$@,$(STRIP) -S -o $$@ $$^)
|
| endef
|
|
|
|
|
|
|