Skip to content

Commit 6687fc9

Browse files
committed
buildsys: shorten abi dep-file names
certain crypto-layers encode required information in the filename hence crippling NAME_MAX from 255 down to about 143 ascii chars. Since the dependency files of libgcc_eh and libsupc encode the full path to the corresponding libraries, the names of the dep files can get quite large. Shorten them by some (arbitrary, short) hash. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
1 parent cbaa5bd commit 6687fc9

3 files changed

Lines changed: 6 additions & 4 deletions

File tree

Rules.mak

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ RM = rm -f
5050
TAR = tar
5151
SED = sed
5252
AWK = awk
53+
MD5SUM = md5sum
5354

5455
ARFLAGS:= cr
5556

@@ -249,6 +250,7 @@ endif
249250

250251
list-archive-members = $(if $(1),$(shell $(AR) t $(1)))
251252
variablify = $(strip $(subst /,_,$(subst :,_,$(subst ;,_,$(subst |,_,$(subst >,_,$(subst <,_,$(1))))))))
253+
print-hash = $(strip $(if $(1),$(shell printf "%s" "$(1)" | $(MD5SUM) | $(SED) 's/[^0-9a-zA-Z]//g')))
252254

253255
GEN_LIBS:= -lc
254256
ifneq ($(LIBGCC_DIR),$(UCLIBCXX_RUNTIME_LIBDIR))

src/abi/libgcc_eh/Makefile.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ OBJS = $(call list-archive-members,$(LIBGCC_EH))
44
libgcc_eh-$(IMPORT_LIBGCC_EH) := $(OBJS)
55

66
LIBGCC_EH_VAR := $(call variablify,$(LIBGCC_EH))
7-
LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(LIBGCC_EH_VAR).dep
7+
LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(call print-hash,$(LIBGCC_EH_VAR)).dep
88

99
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
1010
-include $(LIBGCC_EH_DEP)
@@ -17,7 +17,7 @@ endif
1717
$(LIBGCC_EH_DEP): $(LIBGCC_EH)
1818
$(Q)$(RM) $(LIBGCC_EH_OUT).*dep $(LIBGCC_EH_OUT)*.o
1919
$(Q)$(if $(LIBGCC_EH),(cd $(LIBGCC_EH_OUT) && $(AR) x $(LIBGCC_EH)))
20-
$(Q)echo "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
20+
$(Q)printf "# %s\n\n%s\n" "$(LIBGCC_EH)" "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
2121

2222
CLEAN_src/abi/libgcc_eh: ;
2323
DISTCLEAN_src/abi/libgcc_eh:

src/abi/libsupc/Makefile.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ OBJS-OMIT = $(filter new_op%.o del_op%.o pure.o new_handler.o eh_alloc.o eh_glob
55
libsupc-$(IMPORT_LIBSUP) := $(filter-out $(OBJS-OMIT),$(OBJS))
66

77
LIBSUP_VAR := $(call variablify,$(LIBSUP))
8-
LIBSUP_DEP :=$(LIBSUPC_OUT).$(LIBSUP_VAR).dep
8+
LIBSUP_DEP := $(LIBSUPC_OUT).$(call print-hash,$(LIBSUP_VAR)).dep
99

1010
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
1111
-include $(LIBSUP_DEP)
@@ -17,7 +17,7 @@ endif
1717
$(LIBSUP_DEP): $(LIBSUP) $(LIBSUPC_OUT)Makefile.in
1818
$(Q)$(RM) $(LIBSUPC_OUT).*dep $(LIBSUPC_OUT)*.o
1919
$(Q)$(if $(LIBSUP),(cd $(LIBSUPC_OUT) && $(AR) x $(LIBSUP) && $(RM) $(OBJS-OMIT)))
20-
$(Q)echo "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
20+
$(Q)printf "# %s\n\n%s\n" "$(LIBSUP)" "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
2121

2222
CLEAN_src/abi/libsupc: ;
2323
DISTCLEAN_src/abi/libsupc:

0 commit comments

Comments
 (0)