uclibc++: fix compilation with long file paths
[openwrt/staging/pepe2k.git] / package / libs / uclibc++ / patches / 006-buildsys-shorten-abi-deb-file-names.patch
1 From 6687fc9276fa52defaf8592f2001c19b826aec93 Mon Sep 17 00:00:00 2001
2 From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
3 Date: Thu, 4 Jun 2020 10:21:43 +0200
4 Subject: buildsys: shorten abi dep-file names
5
6 certain crypto-layers encode required information in the
7 filename hence crippling NAME_MAX from 255 down to about 143
8 ascii chars.
9
10 Since the dependency files of libgcc_eh and libsupc encode the full
11 path to the corresponding libraries, the names of the dep files can
12 get quite large. Shorten them by some (arbitrary, short) hash.
13
14 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
15 ---
16 Rules.mak | 2 ++
17 src/abi/libgcc_eh/Makefile.in | 4 ++--
18 src/abi/libsupc/Makefile.in | 4 ++--
19 3 files changed, 6 insertions(+), 4 deletions(-)
20
21 diff --git a/Rules.mak b/Rules.mak
22 index 1b5ed30..9162c64 100644
23 --- a/Rules.mak
24 +++ b/Rules.mak
25 @@ -50,6 +50,7 @@ RM = rm -f
26 TAR = tar
27 SED = sed
28 AWK = awk
29 +MD5SUM = md5sum
30
31 ARFLAGS:= cr
32
33 @@ -249,6 +250,7 @@ endif
34
35 list-archive-members = $(if $(1),$(shell $(AR) t $(1)))
36 variablify = $(strip $(subst /,_,$(subst :,_,$(subst ;,_,$(subst |,_,$(subst >,_,$(subst <,_,$(1))))))))
37 +print-hash = $(strip $(if $(1),$(shell printf "%s" "$(1)" | $(MD5SUM) | $(SED) 's/[^0-9a-zA-Z]//g')))
38
39 GEN_LIBS:= -lc
40 ifneq ($(LIBGCC_DIR),$(UCLIBCXX_RUNTIME_LIBDIR))
41 diff --git a/src/abi/libgcc_eh/Makefile.in b/src/abi/libgcc_eh/Makefile.in
42 index 46b0017..1553b34 100644
43 --- a/src/abi/libgcc_eh/Makefile.in
44 +++ b/src/abi/libgcc_eh/Makefile.in
45 @@ -4,7 +4,7 @@ OBJS = $(call list-archive-members,$(LIBGCC_EH))
46 libgcc_eh-$(IMPORT_LIBGCC_EH) := $(OBJS)
47
48 LIBGCC_EH_VAR := $(call variablify,$(LIBGCC_EH))
49 -LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(LIBGCC_EH_VAR).dep
50 +LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(call print-hash,$(LIBGCC_EH_VAR)).dep
51
52 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
53 -include $(LIBGCC_EH_DEP)
54 @@ -17,7 +17,7 @@ endif
55 $(LIBGCC_EH_DEP): $(LIBGCC_EH)
56 $(Q)$(RM) $(LIBGCC_EH_OUT).*dep $(LIBGCC_EH_OUT)*.o
57 $(Q)$(if $(LIBGCC_EH),(cd $(LIBGCC_EH_OUT) && $(AR) x $(LIBGCC_EH)))
58 - $(Q)echo "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
59 + $(Q)printf "# %s\n\n%s\n" "$(LIBGCC_EH)" "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
60
61 CLEAN_src/abi/libgcc_eh: ;
62 DISTCLEAN_src/abi/libgcc_eh:
63 diff --git a/src/abi/libsupc/Makefile.in b/src/abi/libsupc/Makefile.in
64 index 89e0e8a..9c00df0 100644
65 --- a/src/abi/libsupc/Makefile.in
66 +++ b/src/abi/libsupc/Makefile.in
67 @@ -5,7 +5,7 @@ OBJS-OMIT = $(filter new_op%.o del_op%.o pure.o new_handler.o eh_alloc.o eh_glob
68 libsupc-$(IMPORT_LIBSUP) := $(filter-out $(OBJS-OMIT),$(OBJS))
69
70 LIBSUP_VAR := $(call variablify,$(LIBSUP))
71 -LIBSUP_DEP :=$(LIBSUPC_OUT).$(LIBSUP_VAR).dep
72 +LIBSUP_DEP := $(LIBSUPC_OUT).$(call print-hash,$(LIBSUP_VAR)).dep
73
74 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
75 -include $(LIBSUP_DEP)
76 @@ -17,7 +17,7 @@ endif
77 $(LIBSUP_DEP): $(LIBSUP) $(LIBSUPC_OUT)Makefile.in
78 $(Q)$(RM) $(LIBSUPC_OUT).*dep $(LIBSUPC_OUT)*.o
79 $(Q)$(if $(LIBSUP),(cd $(LIBSUPC_OUT) && $(AR) x $(LIBSUP) && $(RM) $(OBJS-OMIT)))
80 - $(Q)echo "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
81 + $(Q)printf "# %s\n\n%s\n" "$(LIBSUP)" "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
82
83 CLEAN_src/abi/libsupc: ;
84 DISTCLEAN_src/abi/libsupc:
85 --
86 cgit v1.2.3