Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15b02bd1 authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge "Add basic musl support to make"

parents 7130f45d af7ac398
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -19,7 +19,11 @@ include $(BUILD_SYSTEM)/use_lld_setup.mk
# supply that, for example, when building libc itself.
ifdef LOCAL_IS_HOST_MODULE
  ifeq ($(LOCAL_SYSTEM_SHARED_LIBRARIES),none)
    ifdef USE_HOST_MUSL
      my_system_shared_libraries := libc_musl
    else
      my_system_shared_libraries :=
    endif
  else
      my_system_shared_libraries := $(LOCAL_SYSTEM_SHARED_LIBRARIES)
  endif
@@ -348,11 +352,13 @@ my_ldlibs := $(filter $(my_allowed_ldlibs),$(my_ldlibs))
else # LOCAL_IS_HOST_MODULE
  # Add -ldl, -lpthread, -lm and -lrt to host builds to match the default behavior of
  # device builds
  ifndef USE_HOST_MUSL
    my_ldlibs += -ldl -lpthread -lm
    ifneq ($(HOST_OS),darwin)
      my_ldlibs += -lrt
    endif
  endif
endif

ifneq ($(LOCAL_SDK_VERSION),)
  my_all_ndk_libraries := $(NDK_KNOWN_LIBS)
+0 −8
Original line number Diff line number Diff line
@@ -1054,14 +1054,6 @@ endif # PRODUCT_USE_DYNAMIC_PARTITIONS
BOARD_PREBUILT_HIDDENAPI_DIR ?=
.KATI_READONLY := BOARD_PREBUILT_HIDDENAPI_DIR

ifdef USE_HOST_MUSL
  ifneq (,$(or $(BUILD_BROKEN_USES_BUILD_HOST_EXECUTABLE),\
               $(BUILD_BROKEN_USES_BUILD_HOST_SHARED_LIBRARY),\
               $(BUILD_BROKEN_USES_BUILD_HOST_STATIC_LIBRARY)))
    $(error USE_HOST_MUSL can't be set when native host builds are enabled in Make with BUILD_BROKEN_USES_BUILD_HOST_*)
  endif
endif

# ###############################################################
# Set up final options.
# ###############################################################
+6 −0
Original line number Diff line number Diff line
@@ -2121,6 +2121,7 @@ $(hide) $(PRIVATE_CXX_LINK) \
     $(PRIVATE_HOST_GLOBAL_LDFLAGS) \
  ) \
  $(PRIVATE_LDFLAGS) \
  $(PRIVATE_CRTBEGIN) \
  $(PRIVATE_ALL_OBJECTS) \
  -Wl,--whole-archive \
  $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES) \
@@ -2129,8 +2130,10 @@ $(hide) $(PRIVATE_CXX_LINK) \
  $(PRIVATE_ALL_STATIC_LIBRARIES) \
  $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
  $(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_HOST_LIBPROFILE_RT)) \
  $(PRIVATE_LIBCRT_BUILTINS) \
  $(PRIVATE_ALL_SHARED_LIBRARIES) \
  -o $@ \
  $(PRIVATE_CRTEND) \
  $(PRIVATE_LDLIBS)
endef
endif
@@ -2264,6 +2267,7 @@ endef
ifneq ($(HOST_CUSTOM_LD_COMMAND),true)
define transform-host-o-to-executable-inner
$(hide) $(PRIVATE_CXX_LINK) \
  $(PRIVATE_CRTBEGIN) \
  $(PRIVATE_ALL_OBJECTS) \
  -Wl,--whole-archive \
  $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES) \
@@ -2272,6 +2276,7 @@ $(hide) $(PRIVATE_CXX_LINK) \
  $(PRIVATE_ALL_STATIC_LIBRARIES) \
  $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
  $(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_HOST_LIBPROFILE_RT)) \
  $(PRIVATE_LIBCRT_BUILTINS) \
  $(PRIVATE_ALL_SHARED_LIBRARIES) \
  $(foreach path,$(PRIVATE_RPATHS), \
    -Wl,-rpath,\$$ORIGIN/$(path)) \
@@ -2280,6 +2285,7 @@ $(hide) $(PRIVATE_CXX_LINK) \
  ) \
  $(PRIVATE_LDFLAGS) \
  -o $@ \
  $(PRIVATE_CRTEND) \
  $(PRIVATE_LDLIBS)
endef
endif
+15 −0
Original line number Diff line number Diff line
@@ -39,6 +39,21 @@ $(LOCAL_BUILT_MODULE): PRIVATE_RPATHS := ../$(my_libdir) $(my_libdir)
endif
my_libdir :=

my_crtbegin :=
my_crtend :=
my_libcrt_builtins :=
ifdef USE_HOST_MUSL
  my_crtbegin := $(SOONG_$(LOCAL_2ND_ARCH_VAR_PREFIX)HOST_OBJECT_libc_musl_crtbegin_dynamic)
  my_crtend := $(SOONG_$(LOCAL_2ND_ARCH_VAR_PREFIX)HOST_OBJECT_libc_musl_crtend)
  my_libcrt_builtins := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBCRT_BUILTINS)
  $(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS += -Wl,--no-dynamic-linker
endif

$(LOCAL_BUILT_MODULE): PRIVATE_CRTBEGIN := $(my_crtbegin)
$(LOCAL_BUILT_MODULE): PRIVATE_CRTEND := $(my_crtend)
$(LOCAL_BUILT_MODULE): PRIVATE_LIBCRT_BUILTINS := $(my_libcrt_builtins)
$(LOCAL_BUILT_MODULE): $(my_crtbegin) $(my_crtend) $(my_libcrt_builtins)

$(LOCAL_BUILT_MODULE): $(all_objects) $(all_libraries) $(CLANG_CXX)
	$(transform-host-o-to-executable)

+11 −0
Original line number Diff line number Diff line
@@ -36,6 +36,17 @@ include $(BUILD_SYSTEM)/binary.mk
my_host_libprofile_rt := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBPROFILE_RT)
$(LOCAL_BUILT_MODULE): PRIVATE_HOST_LIBPROFILE_RT := $(my_host_libprofile_rt)

ifdef USE_HOST_MUSL
  my_crtbegin := $(SOONG_$(LOCAL_2ND_ARCH_VAR_PREFIX)HOST_OBJECT_libc_musl_crtbegin_so)
  my_crtend := $(SOONG_$(LOCAL_2ND_ARCH_VAR_PREFIX)HOST_OBJECT_libc_musl_crtend_so)
  my_libcrt_builtins := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LIBCRT_BUILTINS)
endif

$(LOCAL_BUILT_MODULE): PRIVATE_CRTBEGIN := $(my_crtbegin)
$(LOCAL_BUILT_MODULE): PRIVATE_CRTEND := $(my_crtend)
$(LOCAL_BUILT_MODULE): PRIVATE_LIBCRT_BUILTINS := $(my_libcrt_builtins)
$(LOCAL_BUILT_MODULE): $(my_crtbegin) $(my_crtend) $(my_libcrt_builtins)

$(LOCAL_BUILT_MODULE): \
        $(all_objects) \
        $(all_libraries) \