aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/uclibc++/patches/006-buildsys-shorten-abi-deb-file-names.patch
blob: 8a4677c7091038a51024eb727f2063b4548f61fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
From 6687fc9276fa52defaf8592f2001c19b826aec93 Mon Sep 17 00:00:00 2001
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Date: Thu, 4 Jun 2020 10:21:43 +0200
Subject: 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>
---
 Rules.mak                     | 2 ++
 src/abi/libgcc_eh/Makefile.in | 4 ++--
 src/abi/libsupc/Makefile.in   | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/Rules.mak b/Rules.mak
index 1b5ed30..9162c64 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -50,6 +50,7 @@ RM      = rm -f
 TAR     = tar
 SED     = sed
 AWK     = awk
+MD5SUM  = md5sum
 
 ARFLAGS:= cr
 
@@ -249,6 +250,7 @@ endif
 
 list-archive-members = $(if $(1),$(shell $(AR) t $(1)))
 variablify = $(strip $(subst /,_,$(subst :,_,$(subst ;,_,$(subst |,_,$(subst >,_,$(subst <,_,$(1))))))))
+print-hash = $(strip $(if $(1),$(shell printf "%s" "$(1)" | $(MD5SUM) | $(SED) 's/[^0-9a-zA-Z]//g')))
 
 GEN_LIBS:= -lc
 ifneq ($(LIBGCC_DIR),$(UCLIBCXX_RUNTIME_LIBDIR))
diff --git a/src/abi/libgcc_eh/Makefile.in b/src/abi/libgcc_eh/Makefile.in
index 46b0017..1553b34 100644
--- a/src/abi/libgcc_eh/Makefile.in
+++ b/src/abi/libgcc_eh/Makefile.in
@@ -4,7 +4,7 @@ OBJS = $(call list-archive-members,$(LIBGCC_EH))
 libgcc_eh-$(IMPORT_LIBGCC_EH) := $(OBJS)
 
 LIBGCC_EH_VAR := $(call variablify,$(LIBGCC_EH))
-LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(LIBGCC_EH_VAR).dep
+LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(call print-hash,$(LIBGCC_EH_VAR)).dep
 
 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
 -include $(LIBGCC_EH_DEP)
@@ -17,7 +17,7 @@ endif
 $(LIBGCC_EH_DEP): $(LIBGCC_EH)
 	$(Q)$(RM) $(LIBGCC_EH_OUT).*dep $(LIBGCC_EH_OUT)*.o
 	$(Q)$(if $(LIBGCC_EH),(cd $(LIBGCC_EH_OUT) && $(AR) x $(LIBGCC_EH)))
-	$(Q)echo "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
+	$(Q)printf "# %s\n\n%s\n" "$(LIBGCC_EH)" "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
 
 CLEAN_src/abi/libgcc_eh: ;
 DISTCLEAN_src/abi/libgcc_eh:
diff --git a/src/abi/libsupc/Makefile.in b/src/abi/libsupc/Makefile.in
index 89e0e8a..9c00df0 100644
--- a/src/abi/libsupc/Makefile.in
+++ b/src/abi/libsupc/Makefile.in
@@ -5,7 +5,7 @@ OBJS-OMIT = $(filter new_op%.o del_op%.o pure.o new_handler.o eh_alloc.o eh_glob
 libsupc-$(IMPORT_LIBSUP) := $(filter-out $(OBJS-OMIT),$(OBJS))
 
 LIBSUP_VAR := $(call variablify,$(LIBSUP))
-LIBSUP_DEP :=$(LIBSUPC_OUT).$(LIBSUP_VAR).dep
+LIBSUP_DEP := $(LIBSUPC_OUT).$(call print-hash,$(LIBSUP_VAR)).dep
 
 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
 -include $(LIBSUP_DEP)
@@ -17,7 +17,7 @@ endif
 $(LIBSUP_DEP): $(LIBSUP) $(LIBSUPC_OUT)Makefile.in
 	$(Q)$(RM) $(LIBSUPC_OUT).*dep $(LIBSUPC_OUT)*.o
 	$(Q)$(if $(LIBSUP),(cd $(LIBSUPC_OUT) && $(AR) x $(LIBSUP) && $(RM) $(OBJS-OMIT)))
-	$(Q)echo "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
+	$(Q)printf "# %s\n\n%s\n" "$(LIBSUP)" "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
 
 CLEAN_src/abi/libsupc: ;
 DISTCLEAN_src/abi/libsupc:
-- 
cgit v1.2.3