From be15f9cacaebffd7572950a85bdab0aa9780e9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Tue, 9 Jan 2024 22:52:43 +0000 Subject: [PATCH] Fix weak symbols to work in tcc. Fixes #322. --- parts.rst | 9 ++-- steps/SHA256SUMS.pkgs | 52 +++++++++---------- steps/bison-3.4.1/mk/lib.mk | 2 +- steps/coreutils-5.0/mk/pass2.mk | 2 +- steps/coreutils-6.10/mk/main.mk | 2 +- .../patches/musl_weak_symbols.patch | 17 ------ .../ignore-static-inside-array.patch | 1 - .../patches-pass5/static-link.patch | 1 - .../patches/dont-skip-weak-symbols-ar.patch | 50 ++++++++++++++++++ .../patches/ignore-duplicate-symbols.patch | 19 ------- 10 files changed, 82 insertions(+), 73 deletions(-) delete mode 100644 steps/musl-1.1.24/patches/musl_weak_symbols.patch delete mode 120000 steps/tcc-0.9.27/patches-pass5/ignore-static-inside-array.patch delete mode 120000 steps/tcc-0.9.27/patches-pass5/static-link.patch create mode 100644 steps/tcc-0.9.27/patches/dont-skip-weak-symbols-ar.patch delete mode 100644 steps/tcc-0.9.27/patches/ignore-duplicate-symbols.patch diff --git a/parts.rst b/parts.rst index 68c3e62..f211a9a 100644 --- a/parts.rst +++ b/parts.rst @@ -381,9 +381,7 @@ C library. Our previous Mes C library was incomplete which prevented us from building many newer or more complex programs. ``tcc`` has slight problems when building and linking ``musl``, so we -apply a few patches. In particular, we replace all weak symbols with -strong symbols and will patch ``tcc`` in the next step to ignore -duplicate symbols. +apply a few patches. We do not use any of ``/usr/lib/mes`` or ``/usr/include/mes`` any longer, rather using ``/usr/lib`` and ``/usr/include`` like normal. @@ -657,14 +655,13 @@ and the GNU assembler ``as``. musl 1.1.24 (v3) ================ -We rebuild musl for the third time. This time we use GNU ar rather than ``tcc -ar``, -so we can drop weak symbols patch. Also, we can use GNU as to build assembly source files, +We rebuild musl for the third time. This time we can use GNU as to build assembly source files, so those assembly files that tcc failed to compile no longer have to be patched. tcc 0.9.27 (musl v3) ==================== -We rebuild tcc against new musl and without a patch to ignore duplicate symbols. +We rebuild tcc against new musl. gcc 4.0.4 ========= diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs index c4c91ab..7e5ec0d 100644 --- a/steps/SHA256SUMS.pkgs +++ b/steps/SHA256SUMS.pkgs @@ -16,29 +16,29 @@ d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_ 57100612d902537b72ee2fd3dfecc903f2ea3959f1a480af87c6a1ef9a9d7c03 automake-1.16.3_0.tar.bz2 1c7e09ac08f156960420fca1f6e8560c1855bf01b001a0648b56153d6ceb9c28 automake-1.6.3_0.tar.bz2 444131776779d1f27628088a817bfb8c9aa85f4b036b934794a71e484ec9bd70 automake-1.6.3_1.tar.bz2 -ef08694bf8e78ffcf56f9c8a63b0f189e301c06f02ab240e15e4c7fe354c2a0d automake-1.7_0.tar.bz2 e8ff13753943e43972a8cf1672819f001718ed38e5497cf7b554c21a507ba22b automake-1.7.8_0.tar.bz2 +ef08694bf8e78ffcf56f9c8a63b0f189e301c06f02ab240e15e4c7fe354c2a0d automake-1.7_0.tar.bz2 9922651b64ad2e29b944082f26db223008220155048f25d64df1f6d82071ff1c automake-1.8.5_0.tar.bz2 c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6_0.tar.bz2 f8a55bf656f950ee3c5cea48af03f552166f6db9926b78c78843f3cc52a6e22d bash-5.2.15_0.tar.bz2 ebc631ee8e9382650005984ec5f3910492ccb6fb2656b4c0af0f4afc16998906 bc-1.07.1_0.tar.bz2 -3126d6539138d8078bd13d7f8b7b3e2ca4719e3c49d98f8490c0f061bf72d18f binutils-2.30_0.tar.bz2 +b21f77069ca847268c115b7305da5927acebc59d89e9cd82d8ac416c126f3f0b binutils-2.30_0.tar.bz2 da658346866061324b92a6b734561257acfdb981783ad5794d67a0cd56e14e58 binutils-2.41_0.tar.bz2 026447a32ab08a8a5150bab82a2f150af4a2ed90c47cfde631e1460eaed019aa binutils-2.41_1.tar.bz2 f0bb18831983493b82fde53917e8d16c6a380761ac5e71e14769a82193fee788 bison-2.3_0.tar.bz2 -cb93657e111253d3ed8935686d50a55bed0ebc4c3bed045d659ba9058ba0fea1 bison-3.4.1_0.tar.bz2 -2b79a739789a70a5f968c4b41c4f526bffef07fb36df4358121685630c0c9969 bison-3.4.1_1.tar.bz2 -41340ed0e496f9e120058f41eaa43b4c9f9e535d8be2d0dc277551b5995a141b bison-3.4.1_2.tar.bz2 +76cb8b9752d82afa28789ccd5dcb9fd7ee44b605c2fd0fd5800e88c75f77593e bison-3.4.1_0.tar.bz2 +485d20ada934b700460404ceef934788c6e0bd3e3c7be0ac4e8f337909a9e3d9 bison-3.4.1_1.tar.bz2 +fcaab66694e70e8780b96e2d0dfd3c913427a741b494f820b595eb9617460e3e bison-3.4.1_2.tar.bz2 6d5e4debdec03aee096dbcefcad878fb5c6a069f895ee7ade878d9eeb97fb83e bison-3.4.2_0.tar.bz2 -9ba54901cb606fa71476c828a215de0c738470f91ed9fd27d8ceb6a23f14d895 bzip2-1.0.8_0.tar.bz2 +ca7403a7503e8f3bb55e6c5bd54571b8c061b11c96e50ee89e006df6011d1518 bzip2-1.0.8_0.tar.bz2 543214998317d764595d3dd247a1fb2e0803ad77978b8474bd24d64c161b9530 ca-certificates-3.95_0.tar.bz2 -e790ce4bd86869a93a435aca28658a70e33049388058580bd8da453e2cb03603 coreutils-5.0_0.tar.bz2 -34c9558f0101773b67bc4e0c9148543e65435344d004396e629d110f0392d3bd coreutils-6.10_0.tar.bz2 +7450bb38caaa633f8c11269fed44eb680c6ba03bb0e19c18fce3b2450f80e358 coreutils-5.0_0.tar.bz2 +c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10_0.tar.bz2 f49900486ae7f0c8107d729b71ede155ee44544cdf8d562b50fbea4095bd05b2 coreutils-8.32_0.tar.bz2 6a10f5258650ae75e92eb7aa1a5e6107b72c8b6419a4f64272262a1545c43161 curl-8.5.0_0.tar.bz2 f9efd6600ceb91918078078ff44a33f2a4fb4a59edb804866aebd288c2cfb24e curl-8.5.0_1.tar.bz2 1d4dec2d1885a6b5499a0f0d55e9c2c65dab532c4c593d848b6a542f67789627 dhcpcd-10.0.1_0.tar.bz2 -0858dc91cf8a6c00d04ec50c31ce06d80f930b28d188d636dacbbbb593b284e9 diffutils-2.7_0.tar.bz2 +abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2 bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2 3a4c5143a241364019afd39af067f1e8433bab78b04096870d9bf2c70ec6ded8 e2fsprogs-1.45.7_0.tar.bz2 9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2 @@ -46,8 +46,8 @@ bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0 eec07e0d710ed3dd8d0ba6a1ec6ca9f1fa3a611bbb225195435679175317bf90 findutils-4.2.33_0.tar.bz2 41902ec0383ea977a8d008dee37150e022e0714cd99f54c37f29c153464b758a flex-2.5.11_0.tar.bz2 b3a8d59229289ca5a1de6a24c9c828d2847144f6662e0d5b7f41e7ff6e57abaa flex-2.5.33_0.tar.bz2 -349c9a7cb1c90533627fb6c97f2e3cf7ae57a49a4e92ed46d660bbecacd07433 flex-2.6.4_0.tar.bz2 -b12ef4701c3d2e531e314776a858effb49a33595d901663263a4273a8a59d77c gawk-3.0.4_0.tar.bz2 +57f72a4d1cb89dc1e59af0228fddc0ea97a3588984114f702f142c82aeeef493 flex-2.6.4_0.tar.bz2 +f0f1471e4a5ff95749bd655c145311cc03eec80525f2bb0b9b3ac3ff8be29e0b gawk-3.0.4_0.tar.bz2 6de1c1380026ef9948387e665610185b6014f47a80453177a6c81898c95cbbd3 gc-8.0.4_0.tar.bz2 c99d080cf17ac3f75cbae67095cb76220a92d96d877c92c896a7f05c9c94e92d gcc-10.4.0_0.tar.bz2 e0c9e7f4f0cd0d5027f2a38eb262f883133c31ac9ec93ee6afa5abc028096bc0 gcc-13.1.0_0.tar.bz2 @@ -57,7 +57,7 @@ c1bf792e90df13bf7a24d3f8ce3939fd96ff61b8117e4dcef75605974f3fcf25 gcc-4.0.4_1.ta dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0.tar.bz2 309282ba840f80b5e10897b1221f3ff3329b9e05b982c788d03652f411974524 gmp-6.2.1_0.tar.bz2 62edfa633f64202b2d29199d11d56a897654a441c7ae39a4d59ca5fe75199f61 gperf-3.1_0.tar.bz2 -23d6f3bf4a60708ebc66d778c536616a728b378defff9f39ee9d1c2fd0cfdd87 grep-2.4_0.tar.bz2 +276e073496931ff7d4caaabb53079412b88de953def88aec966c1f8506293e88 grep-2.4_0.tar.bz2 8e612afb9a439aa8bf5db0fc2589eec890a6017690412d5c8e88a5838730b42c grep-3.7_0.tar.bz2 e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2 8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2 @@ -72,45 +72,45 @@ daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_ 503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2 fd2264a08cbeeb28f3e2580cba174376a154c77b0ef6cbf67b55fd13c0987f52 linux-4.9.10_0.tar.bz2 d15c922973c15a8206e09020e8cfe6a78f7e93614de212f2b37ff80163799c6c linux-headers-4.9.10_0.tar.bz2 -fdb3dce8af3eb6c0745f103989f1bae0bfe9156390215f97240a75ed77ae4acd m4-1.4.7_0.tar.bz2 +bd3885a389d3e058081e099850f95aa7938ce1d9b88a187aea6b7196124fbcfe m4-1.4.7_0.tar.bz2 e69554b0a77b419ddd5d0a0e418ba4005ecd0f6784c92a6928a0270bd929a098 make-3.82_0.tar.bz2 6d24960d6a987f68a7e0e3abf6edb52d2e0fe4c86f6ba45327e9634dbf7d40b4 make-4.2.1_0.tar.bz2 17cd976bc0f6e897c6fffe43dd7c55d93ce0adadf1b4dc72925b80e2d266519f mpc-1.2.1_0.tar.bz2 98a9f55c01ed375fae21913284e7fa07ff434c0810f34d791f3fbaa1df221302 mpfr-4.1.0_0.tar.bz2 -2fbbd3d8e56173aa6950fb2d5be9b1af6b25735ac7ba79e1938fff232a801418 musl-1.1.24_0.tar.bz2 -5fe0f457fd577bfbef98d85cc572ce3a30e17c004eeff18a298a6db13126ea61 musl-1.1.24_1.tar.bz2 +3561678ad3b8ed5a085cdd86baefb18a675c3cecca8e6e8e086b17007e918370 musl-1.1.24_0.tar.bz2 +40a35b525f21dce1007e17a3557677d49477df753e715579c37438d5581b0dcd musl-1.1.24_1.tar.bz2 d58d85c4be26d90f111f273929a4998d05294fe5aa37c4842d5aecaa593e6079 musl-1.1.24_2.tar.bz2 81f79a0faf58e105c5f12d9f538d3ea7578a3b361e633ab8f47324ec23ec9de6 musl-1.2.4_0.tar.bz2 6dc5e763b747b66f72692c6820d7f46b7f4cf2e2fe05229a1d01c03919c1c936 musl-1.2.4_1.tar.bz2 820203286127e7c22cee9f1b3cff664431f10d14c3f22f00b3e771fd849fd449 musl-1.2.4_2.tar.bz2 c490016e49bbf77e7f63071f7aa60e8290a0c67f017846def1c3f65bd10d5712 openssl-1.1.1l_0.tar.bz2 71864d042cdc564b65eab21360902c714e9b43f80a19689c5600589529b267e7 patch-2.7.6_0.tar.bz2 -35dff94213d6b4648ac857daff76817048723acc01a07b428f031be854b0dc63 perl-5.000_0.tar.bz2 -ea93a29bd049af498e34ceebed4f1b747aed1713bd2d787e03b65c1031806e71 perl-5.003_0.tar.bz2 -a6afef8623ffddd4d50c1688d5c6a03a696e9d06ae903412bf99edb2d6b65a6d perl5.004-05_0.tar.bz2 -485c76bec0aa901de0c4cfce00e3e7a203d7342895cce60dbc9162fd8a999e90 perl5.005-03_0.tar.bz2 +5ae7fe43d62d1064c123d9813017015e5e8d5107d0e70f0199576141416ff81d perl-5.000_0.tar.bz2 +4994c55e3832649600f190079bd4779c463478a092b167098b1d00eff3358fbe perl-5.003_0.tar.bz2 74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2 fdccd3ba27a44d2149f159040414a04b39bfc72673ba36f50051b61199cc425c perl-5.32.1_0.tar.bz2 -f9e5cd15fa976ba1b3892640bb2f39b35e0cd1147bf98a92d26e3ab1dc6b86f3 perl-5.6.2_0.tar.bz2 +101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2 +ae6c84e55c2d9bcd7b80bf780ae6921fe890608123c9ba904e1b7d90759ade3d perl5.004-05_0.tar.bz2 +8cedd2240bbbd5bca65a1362998ed73884756aa7ff5208226d3fa22c68868052 perl5.005-03_0.tar.bz2 1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2 1e882c3206f9d1de2a9be8b5c6ae4cc65e80a4de607bd521058577bf4169c0e9 python-2.0.1_0.tar.bz2 aba9710341db75b78c7bc1eb4ef45b9496e23f7a356128af6c2b116ee0f3f31a python-2.0.1_1.tar.bz2 d497c9b614194b941620bb5c5111fc72eca8cafd7d4f476eacb24fb7f909b614 python-2.3.7_0.tar.bz2 8a977205933431c2a4207f647cb683b570dfdb0146e21abf5fab3f8426e1356b python-2.3.7_1.tar.bz2 34e5083ed3e72da5aa5950acebf9e95464089d693e3d6a047a2b69b6103f5ca9 python-2.5.6_0.tar.bz2 -52ffb1ea6f2b893a6fd26f930c8ff63f78ddcc31ac3ec9c2ddade555205aa1ef python-3.11.1_0.tar.bz2 3508248f299b73c50e3607c4c294d40face05170476a5026b0821aed69025863 python-3.1.5_0.tar.bz2 12b1ffc7ec98ba8f807160b93ba69a694d5395567c3bcac1e49e8f8d1d50de43 python-3.1.5_1.tar.bz2 +52ffb1ea6f2b893a6fd26f930c8ff63f78ddcc31ac3ec9c2ddade555205aa1ef python-3.11.1_0.tar.bz2 60b93253a2078f849f81e7e1ed6233e30702f03b1893640eee95671d814f5514 python-3.3.7_0.tar.bz2 da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_0.tar.bz2 0be505f63205b4bc1b1421896c610468ad1a2194bbc4c9abf58f61685c2023d1 python-3.8.16_0.tar.bz2 -6874e16afb9a0cfa960416f0ce721e81b4cfb48992e827788df0ed1feb47df1d sed-4.0.9_0.tar.bz2 +34c51d3df85585a8aee7691b3500a5c3c7442b06a6f57231b76970bdd6e99bf9 sed-4.0.9_0.tar.bz2 e8daec00b2c2de7b18efbec057dc9290eed06668806c6f5a48914d4a5cd95eb4 sed-4.8_0.tar.bz2 912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2 -d5d0df210248a385ae255cc5651369108e9a71fa8668821a6b1ed30a8d7364a1 tcc-0.9.27_0.tar.bz2 -53703e68b3d5597dc05b0982331ad87e437f616165e1a289d429d54773ab02fc tcc-0.9.27_1.tar.bz2 -74c26384d3bde54a4d0bac4242559593872f6dcfc5856acbe2c4aea5dd62f941 tcc-0.9.27_2.tar.bz2 -0f7e12be49c697a2758a6e1acae736b3bac208eacfeae1e5155d8159f9a30bd2 tcc-0.9.27_3.tar.bz2 +1667937d5d646f2bb7ec7ab54a23ddd65a0ae3ca7d5e597f3fbcd5163031d2ef tcc-0.9.27_0.tar.bz2 +b20cea098c8ff635a0ce9f99430d7c9a75d081194941ab54dc92dbc8af3776a4 tcc-0.9.27_1.tar.bz2 +8e8cc802fccdb907cd74501dccce1ee85ffb0150b33b4719f86d6720f5b09a7a tcc-0.9.27_2.tar.bz2 +d4fe9460ca561fc2f546f9730f19f541b17dac0bcc42eb190abba856588c3593 tcc-0.9.27_3.tar.bz2 50ebaa1d8fcc4a03a43d431eb71e2f435cc8712ae47d400564df3716037d553a texinfo-6.7_0.tar.bz2 229d9189adac10ad2a2c76fc147a4c317fc5b34026cef1c47edc9159aee480da util-linux-2.19.1_0.tar.bz2 ecdb7ffeb9256f6a9760be70969fe5dea9cde6a538cc88595281fe44340e98a1 which-2.21_0.tar.bz2 diff --git a/steps/bison-3.4.1/mk/lib.mk b/steps/bison-3.4.1/mk/lib.mk index d3749be..8dcf7ad 100644 --- a/steps/bison-3.4.1/mk/lib.mk +++ b/steps/bison-3.4.1/mk/lib.mk @@ -3,7 +3,7 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -lib.a: allocator.o areadlink.o argmatch.o asnprintf.o basename.o basename-lgpl.o binary-io.o bitrotate.o bitset.o bitsetv.o calloc.o canonicalize-lgpl.o careadlinkat.o c-ctype.o cloexec.o close.o closeout.o close-stream.o concat-filename.o c-strcasecmp.o c-strncasecmp.o dirname.o dirname-lgpl.o dup2.o dup-safer.o dup-safer-flag.o exitfail.o fatal-signal.o fd-hook.o fd-safer.o fd-safer-flag.o fopen.o fopen-safer.o fprintf.o frexp.o frexpl.o fstat.o getdtablesize.o get-errno.o gethrxtime.o getopt.o getprogname.o getrusage.o gettime.o gettimeofday.o gl_array_list.o gl_list.o gl_xlist.o hard-locale.o hash.o isnan.o isnand.o isnanf.o isnanl.o itold.o ldexpl.o localcharset.o localtime-buffer.o lstat.o main.o malloca.o malloc.o math.o mbrtowc.o mbsinit.o mbswidth.o memchr.o msvc-inval.o obstack.o obstack_printf.o open.o path-join.o perror.o pipe2-safer.o pipe-safer.o printf-args.o printf.o printf-frexp.o printf-frexpl.o printf-parse.o progname.o progreloc.o quotearg.o raise.o rawmemchr.o readlink.o realloc.o relocatable.o rename.o rmdir.o setenv.o sig-handler.o signbitd.o signbitf.o signbitl.o spawnattr_destroy.o spawnattr_init.o sprintf.o stat.o stat-time.o stat-w32.o stpcpy.o strchrnul.o strdup.o strerror.o stripslash.o strndup.o strnlen.o strverscmp.o timespec.o timevar.o unistd.o unlink.o unsetenv.o vasnprintf.o wait-process.o wctype-h.o xalloc-die.o xconcat-filename.o xmalloc.o xmemdup0.o xreadlink.o xsize.o xstrndup.o xtime.o yyerror.o error.o bitset/array.o bitset/list.o bitset/stats.o bitset/table.o bitset/vector.o fseterr.o spawn-pipe.o +lib.a: allocator.o areadlink.o argmatch.o asnprintf.o basename.o basename-lgpl.o binary-io.o bitrotate.o bitset.o bitsetv.o calloc.o canonicalize-lgpl.o careadlinkat.o c-ctype.o cloexec.o close.o closeout.o close-stream.o concat-filename.o c-strcasecmp.o c-strncasecmp.o dirname.o dirname-lgpl.o dup2.o dup-safer.o dup-safer-flag.o exitfail.o fatal-signal.o fd-hook.o fd-safer.o fd-safer-flag.o fopen.o fopen-safer.o fprintf.o frexp.o frexpl.o fstat.o getdtablesize.o get-errno.o gethrxtime.o getprogname.o getrusage.o gettime.o gettimeofday.o gl_array_list.o gl_list.o gl_xlist.o hard-locale.o hash.o isnan.o isnand.o isnanf.o isnanl.o itold.o ldexpl.o localcharset.o localtime-buffer.o lstat.o main.o malloca.o malloc.o math.o mbrtowc.o mbsinit.o mbswidth.o memchr.o msvc-inval.o obstack.o obstack_printf.o open.o path-join.o perror.o pipe2-safer.o pipe-safer.o printf-args.o printf.o printf-frexp.o printf-frexpl.o printf-parse.o progname.o progreloc.o quotearg.o raise.o rawmemchr.o readlink.o realloc.o relocatable.o rename.o rmdir.o setenv.o sig-handler.o signbitd.o signbitf.o signbitl.o spawnattr_destroy.o spawnattr_init.o sprintf.o stat.o stat-time.o stat-w32.o stpcpy.o strchrnul.o strdup.o strerror.o stripslash.o strndup.o strnlen.o strverscmp.o timespec.o timevar.o unistd.o unlink.o unsetenv.o vasnprintf.o wait-process.o wctype-h.o xalloc-die.o xconcat-filename.o xmalloc.o xmemdup0.o xreadlink.o xsize.o xstrndup.o xtime.o yyerror.o error.o bitset/array.o bitset/list.o bitset/stats.o bitset/table.o bitset/vector.o fseterr.o spawn-pipe.o $(AR) r $@ $^ %.o: %.c diff --git a/steps/coreutils-5.0/mk/pass2.mk b/steps/coreutils-5.0/mk/pass2.mk index e5c6aaa..6141358 100644 --- a/steps/coreutils-5.0/mk/pass2.mk +++ b/steps/coreutils-5.0/mk/pass2.mk @@ -95,7 +95,7 @@ ALL=$(BINARIES) $(SRC_DIR)/cp $(SRC_DIR)/ls $(SRC_DIR)/install $(SRC_DIR)/md5sum all: $(BINARIES) $(SRC_DIR)/cp $(SRC_DIR)/ls $(SRC_DIR)/install $(SRC_DIR)/md5sum $(SRC_DIR)/mv $(SRC_DIR)/rm $(SRC_DIR)/sha1sum LIB_DIR = lib -LIB_SRC = acl alloca posixtm posixver strftime getopt getopt1 hash hash-pjw addext argmatch backupfile basename canon-host closeout cycle-check diacrit dirname dup-safer error exclude exitfail filemode __fpending file-type fnmatch fopen-safer full-read full-write getline getstr gettime hard-locale human idcache isdir imaxtostr linebuffer localcharset long-options makepath mbswidth md5 memcasecmp memcoll modechange offtostr path-concat physmem quote quotearg readtokens rpmatch safe-read safe-write same save-cwd savedir settime sha stpcpy stripslash strtoimax strtoumax umaxtostr unicodeio userspec version-etc xgetcwd xgethostname xmalloc xmemcoll xnanosleep xreadlink xstrdup xstrtod xstrtol xstrtoul xstrtoimax xstrtoumax yesno strnlen getcwd sig2str mountlist regex canonicalize mkstemp memrchr euidaccess ftw obstack strverscmp strftime tsearch stat +LIB_SRC = acl alloca posixtm posixver strftime getopt getopt1 hash hash-pjw addext argmatch backupfile basename canon-host closeout cycle-check diacrit dirname dup-safer error exclude exitfail filemode __fpending file-type fnmatch fopen-safer full-read full-write getline getstr gettime hard-locale human idcache isdir imaxtostr linebuffer localcharset long-options makepath mbswidth md5 memcasecmp memcoll modechange offtostr path-concat physmem quote quotearg readtokens rpmatch safe-read safe-write same save-cwd savedir settime sha stpcpy stripslash umaxtostr unicodeio userspec version-etc xgetcwd xgethostname xmalloc xmemcoll xnanosleep xreadlink xstrdup xstrtod xstrtol xstrtoul xstrtoimax xstrtoumax yesno strnlen getcwd sig2str mountlist regex canonicalize mkstemp memrchr euidaccess ftw obstack strverscmp strftime tsearch stat LIB_OBJECTS = $(addprefix $(LIB_DIR)/, $(addsuffix .o, $(LIB_SRC))) diff --git a/steps/coreutils-6.10/mk/main.mk b/steps/coreutils-6.10/mk/main.mk index 28ab680..cd2ce91 100644 --- a/steps/coreutils-6.10/mk/main.mk +++ b/steps/coreutils-6.10/mk/main.mk @@ -94,7 +94,7 @@ ALL=$(BINARIES) $(SRC_DIR)/sha256sum all: $(BINARIES) $(SRC_DIR)/sha256sum LIB_DIR = lib -LIB_SRC = acl alloca getdate fprintftime posixtm posixver strftime getopt hash hash-pjw argmatch backupfile basename canon-host closeout cycle-check diacrit dirname dup-safer error exclude exitfail filemode fpending file-type fnmatch fopen-safer full-read full-write getline gettime hard-locale human idcache imaxtostr linebuffer localcharset long-options mbswidth md5 memcasecmp memcoll modechange offtostr physmem quote quotearg readtokens rpmatch safe-read safe-write same save-cwd savedir settime sha256 stpcpy stripslash umaxtostr unicodeio userspec version-etc version-etc-fsf xgetcwd xgethostname xmalloc xmemcoll xnanosleep readlink xstrtod xstrtol xstrtoul xstrtoimax xstrtoumax yesno strnlen getcwd sig2str mountlist canonicalize mkstemp memrchr euidaccess obstack strverscmp strftime xalloc-die close-stream tempname filenamecat xstrndup randint randread rand-isaac gethrxtime +LIB_SRC = acl alloca getdate fprintftime posixtm posixver strftime hash hash-pjw argmatch backupfile basename canon-host closeout cycle-check diacrit dirname dup-safer error exclude exitfail filemode fpending file-type fnmatch fopen-safer full-read full-write getline gettime hard-locale human idcache imaxtostr linebuffer localcharset long-options mbswidth md5 memcasecmp memcoll modechange offtostr physmem quote quotearg readtokens rpmatch safe-read safe-write same save-cwd savedir settime sha256 stpcpy stripslash umaxtostr unicodeio userspec version-etc version-etc-fsf xgetcwd xgethostname xmalloc xmemcoll xnanosleep readlink xstrtod xstrtol xstrtoul xstrtoimax xstrtoumax yesno strnlen getcwd sig2str mountlist canonicalize mkstemp memrchr euidaccess obstack strverscmp strftime xalloc-die close-stream tempname filenamecat xstrndup randint randread rand-isaac gethrxtime LIB_OBJECTS = $(addprefix $(LIB_DIR)/, $(addsuffix .o, $(LIB_SRC))) diff --git a/steps/musl-1.1.24/patches/musl_weak_symbols.patch b/steps/musl-1.1.24/patches/musl_weak_symbols.patch deleted file mode 100644 index 28eacc3..0000000 --- a/steps/musl-1.1.24/patches/musl_weak_symbols.patch +++ /dev/null @@ -1,17 +0,0 @@ -SPDX-FileCopyrightText: 2021 Andrius Štikonas -SPDX-FileCopyrightText: 2021 fosslinux - -SPDX-License-Identifier: MIT - -Replace weak symbols with strong to workaround an issue with tcc -ar -This won't be necessary once we can rebuild with ar from binutils. ---- src/include/features.h 2021-02-02 23:15:42.791932948 +0000 -+++ src/include/features.h 2021-02-02 23:17:21.394647015 +0000 -@@ -6,6 +6,6 @@ - #define weak __attribute__((__weak__)) - #define hidden __attribute__((__visibility__("hidden"))) - #define weak_alias(old, new) \ -- extern __typeof(old) new __attribute__((__weak__, __alias__(#old))) -+ extern __typeof(old) new __attribute__((/*__weak__, */__alias__(#old))) - - #endif diff --git a/steps/tcc-0.9.27/patches-pass5/ignore-static-inside-array.patch b/steps/tcc-0.9.27/patches-pass5/ignore-static-inside-array.patch deleted file mode 120000 index 3ba9adc..0000000 --- a/steps/tcc-0.9.27/patches-pass5/ignore-static-inside-array.patch +++ /dev/null @@ -1 +0,0 @@ -../patches/ignore-static-inside-array.patch \ No newline at end of file diff --git a/steps/tcc-0.9.27/patches-pass5/static-link.patch b/steps/tcc-0.9.27/patches-pass5/static-link.patch deleted file mode 120000 index 6d77dd3..0000000 --- a/steps/tcc-0.9.27/patches-pass5/static-link.patch +++ /dev/null @@ -1 +0,0 @@ -../patches/static-link.patch \ No newline at end of file diff --git a/steps/tcc-0.9.27/patches/dont-skip-weak-symbols-ar.patch b/steps/tcc-0.9.27/patches/dont-skip-weak-symbols-ar.patch new file mode 100644 index 0000000..ae147bf --- /dev/null +++ b/steps/tcc-0.9.27/patches/dont-skip-weak-symbols-ar.patch @@ -0,0 +1,50 @@ +SPDX-FileCopyrightText: 2021 Alexander Sosedkin + +SPDX-License-Identifier: LGPL-2.0-or-later + +From da11cf651576f94486dbd043dbfcde469e497574 Mon Sep 17 00:00:00 2001 +From: Alexander Sosedkin +Date: Sat, 30 Oct 2021 16:04:11 +0200 +Subject: [PATCH] Don't skip weak symbols during ar creation + +``` +$ echo 'int __attribute__((__weak__)) f(void) { return 4; }' > w.c +$ tcc -c w.c -o w.o + +$ tcc-old -ar rc w.a w.o; nm -s w.a # previous behaviour, not indexed +w.o: +0000000000000000 W f + +$ ar rc w.a w.o; nm -s w.a # GNU binutils behaviour, indexed +Archive index: +f in w.o + +0000000000000000 W f + +$ tcc-new rc w.a w.o; nm -s w.a # new behaviour, indexed +Archive index: +f in w.o + +0000000000000000 W f +``` +--- + tcctools.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/tcctools.c b/tcctools.c +index cf174965..4567b81a 100644 +--- tcctools.c ++++ tcctools.c +@@ -200,6 +200,9 @@ ST_FUNC int tcc_tool_ar(TCCState *s1, int argc, char **argv) + (sym->st_info == 0x10 + || sym->st_info == 0x11 + || sym->st_info == 0x12 ++ || sym->st_info == 0x20 ++ || sym->st_info == 0x21 ++ || sym->st_info == 0x22 + )) { + //printf("symtab: %2Xh %4Xh %2Xh %s\n", sym->st_info, sym->st_size, sym->st_shndx, strtab + sym->st_name); + istrlen = strlen(strtab + sym->st_name)+1; +-- +2.11.4.GIT + diff --git a/steps/tcc-0.9.27/patches/ignore-duplicate-symbols.patch b/steps/tcc-0.9.27/patches/ignore-duplicate-symbols.patch deleted file mode 100644 index 6551f0f..0000000 --- a/steps/tcc-0.9.27/patches/ignore-duplicate-symbols.patch +++ /dev/null @@ -1,19 +0,0 @@ -SPDX-FileCopyrightText: 2021 Andrius Štikonas - -SPDX-License-Identifier: LGPL-2.0-or-later - -Ignore duplicate symbols. Due to poor support for weak symbols in tcc-ar -we had to patch musl to replace weak symbols with strong symbols ---- tccelf.c 2021-02-02 17:41:08.662247892 +0000 -+++ tccelf.c 2021-02-02 23:21:49.652080201 +0000 -@@ -552,8 +552,9 @@ - #if 0 - printf("new_bind=%x new_shndx=%x new_vis=%x old_bind=%x old_shndx=%x old_vis=%x\n", - sym_bind, shndx, new_vis, esym_bind, esym->st_shndx, esym_vis); --#endif - tcc_error_noabort("'%s' defined twice", name); -+#endif -+ goto do_patch; - } - } else { - do_patch: