Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebuild sed and add libtool #61

Merged
merged 5 commits into from Mar 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions SHA256SUMS.sources
Expand Up @@ -16,6 +16,7 @@ e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995 flex-2.6.4.tar
a32032bab36208509466654df12f507600dfe0313feebbcd218c32a70bf72a16 grep-2.4.tar.gz
4d2ce9f314f39c9575f913503b0178d6fb2c92920db8e7b7b176b7bab7980fe6 gzip-1.2.4.tar
9f233d8b78e4351fe9dd2d50d83958a0e5af36f54e9818521458a08e058691ba heirloom-devtools-070527.tar.bz2
8e8ce6175d435e7df8c9bbb0e5fd5357691cdc28c1a2d00fdd9b47b7643bec3a libtool-1.4.tar.gz
093c993767f563a11e41c1cf887f4e9065247129679d4c1e213d0544d16d8303 m4-1.4.7.tar.gz
64b30b41fde2ebf669e6af489883fb1df6a06ac30555a96cfa3c39ecce7267dd make-3.80.tar.gz
1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 musl-1.1.24.tar.gz
Expand All @@ -25,5 +26,6 @@ ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a patch-2.5.9.ta
1184478b298978b164a383ed5661e3a117c48ab97d6d0ab7ef614cdbe918b9eb perl5.004_05.tar.gz
93f41cd87ab8ee83391cfa39a63b076adeb7c3501d2efa31b98d0ef037122bd1 perl5.005_03.tar.gz
a5e66f6ebf701b0567f569f57cae82abf5ce57af70a2b45ae71323b61f49134e perl-5.6.2.tar.gz
c365874794187f8444e5d22998cd5888ffa47f36def4b77517a808dec27c0600 sed-4.0.9.tar.gz
404a8d72427a559c074e581bf8f7d5a73283faf249cd3faf6dc1c6faf97d07c7 sha-2-61555d.tar.gz
c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a tar-1.12.tar.gz
20 changes: 18 additions & 2 deletions parts.rst
Expand Up @@ -251,6 +251,11 @@ tcc 0.9.27 (musl v2)
Now that we have a ‘fixed’ ``musl``, we now recompile ``tcc`` as ``tcc``
uses floats extensively.

sed 4.0.9
=========

A slightly newer ``sed`` is built against musl.

.. _bzip2-1.0.8-1:

bzip2 1.0.8
Expand Down Expand Up @@ -372,8 +377,8 @@ Version 2.52 is the newest version that runs on ``miniperl``.
automake 1.4-p6
===============

GNU Automake is a tool for automatically generating Makefile.in files. Together with
Autoconf they from GNU Autotools build system.
GNU Automake is a tool for automatically generating Makefile.in files. It is another
major part of GNU Autotools build system.

``automake`` again needs both ``automake`` and ``autoconf``. In order to bootstrap it
we patch ``configure.in`` file to produce ``automake`` and skip ``Makefile`` effectively
Expand All @@ -398,6 +403,12 @@ autoconf 2.12

Yet another old autoconf version that we will need for GNU Binutils.

libtool 1.4
===========

GNU Libtool is the final part of GNU Autotools. It is a script used to hide away differences
when compiling shared libraries on different platforms.

binutils 2.14
=============

Expand All @@ -408,6 +419,11 @@ In particular we can now use full featured ``ar`` instead of ``tcc -ar``,
the GNU linker ``ld``, which allows us building shared libraries,
and the GNU assembler ``as``.

libtool 1.4
===========

Rebuild libtool, so that it uses GNU binutils when creating shared libraries.

musl 1.1.24 (v3)
================

Expand Down
6 changes: 6 additions & 0 deletions rootfs.sh
Expand Up @@ -216,12 +216,18 @@ get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
# autoconf 2.12
get_file https://ftp.gnu.org/gnu/autoconf/autoconf-2.12.tar.gz

# libtool 1.4
get_file https://ftp.gnu.org/gnu/libtool/libtool-1.4.tar.gz

# binutils 2.14
get_file https://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.bz2

# bash 3.2.57
get_file https://ftp.gnu.org/gnu/bash/bash-3.2.57.tar.gz

# sed 4.0.9
get_file ftp://ftp.gnu.org/gnu/sed/sed-4.0.9.tar.gz

# General cleanup
find tmp -name .git -exec rm -rf \;

Expand Down
4 changes: 4 additions & 0 deletions sysa/autoconf-2.13/autoconf-2.13.sh
Expand Up @@ -12,3 +12,7 @@ src_prepare() {
src_configure() {
./configure --prefix=${PREFIX} --program-suffix=-2.13
}

src_compile() {
make MAKEINFO=true
}
5 changes: 5 additions & 0 deletions sysa/binutils-2.14/binutils-2.14.sh
Expand Up @@ -21,6 +21,11 @@ src_prepare() {
cd ..
done

# Rebuild libtool files
rm config.guess config.sub ltmain.sh
libtoolize
cp ${PREFIX}/share/aclocal/libtool.m4 aclocal.m4

# automake errors out without this
cd gas
mv config/m68k-parse.y .
Expand Down
4 changes: 2 additions & 2 deletions sysa/binutils-2.14/checksums
Expand Up @@ -14,7 +14,7 @@ e49bba1ea6a61fb90f754e8de4692ed0810e7c68429f0b22fbf37670607a7807 /after/bin/od
82657d370bca61bf6a6a4cbfb621614582519f2e938be1a4d09c135344c7c889 /after/bin/strings
fe6eaa5cf6e6621356fff3cd047c7cd0051490e895915027b6d4439159707f36 /after/bin/strip
f5934b4f057018b7f14adc197460d8b238cff80294234d771a17a408d5794104 /after/lib/musl/libbfd.a
3c9ab37cff5f732bca1258879fabf3c6c734890de1d7aa6381a5945d38f31c86 /after/lib/musl/libbfd.la
cd472e56e7e9276e2d6eea4b0aecd068cdbbd7d767dd913e7d72e43457f6405a /after/lib/musl/libbfd.la
61a03b0d2eafa5ad50242a7ee8ce8664c2ef342bf727f46ceab8999b61a9a61b /after/lib/musl/libiberty.a
6530574bde4f5c57b194ae4229efb9784a97cc89cd45fc0d852e9afb5e103e4f /after/lib/musl/libopcodes.a
d3c307c7a2cd62a3fc39aa933f40bee94b94aff5db58a3652689ebfe0f616c82 /after/lib/musl/libopcodes.la
817032ae31517f4261ef997dc33a487a5801549c879dd4f4803ba7d80b3430a6 /after/lib/musl/libopcodes.la
2 changes: 2 additions & 0 deletions sysa/libtool-1.4/checksums/pass1
@@ -0,0 +1,2 @@
99cff07a501eb0062fc49db1baec30c83afc0c92f2f8478fc0e6ca7439d2c9b6 /after/lib/musl/libltdl.a
c247c7c1516ed35414c8b038535969a67ce4bbfd2abdfed85a89941bca09d55d /after/lib/musl/libltdl.la
2 changes: 2 additions & 0 deletions sysa/libtool-1.4/checksums/pass2
@@ -0,0 +1,2 @@
23a6e91bff3d5bac9b0317b60bd1c999f94846f62085bf4d227dfa8499120d22 /after/lib/musl/libltdl.a
c247c7c1516ed35414c8b038535969a67ce4bbfd2abdfed85a89941bca09d55d /after/lib/musl/libltdl.la
23 changes: 23 additions & 0 deletions sysa/libtool-1.4/pass1.sh
@@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later

src_prepare() {
default_src_prepare

AUTOCONF=autoconf-2.13 AUTOHEADER=autoheader-2.13 ACLOCAL=aclocal-1.4 AUTOMAKE=automake-1.4 ./bootstrap
}

src_configure() {
CC=tcc LD=true AR="tcc -ar" ./configure \
--prefix="${PREFIX}" \
--libdir="${PREFIX}/lib/musl" \
--disable-shared \
--host=i386-unknown-linux \
--target=i386-unknown-linux \
--build=i386-unknown-linux
}

src_compile() {
AR="tcc -ar" AR_FLAGS="cr" make
}
19 changes: 19 additions & 0 deletions sysa/libtool-1.4/pass2.sh
@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later

src_prepare() {
default_src_prepare

AUTOCONF=autoconf-2.13 AUTOHEADER=autoheader-2.13 ACLOCAL=aclocal-1.4 AUTOMAKE=automake-1.4 ./bootstrap
}

src_configure() {
CC=tcc ./configure \
--prefix="${PREFIX}" \
--libdir="${PREFIX}/lib/musl" \
--disable-shared \
--host=i386-unknown-linux \
--target=i386-unknown-linux \
--build=i386-unknown-linux
}
7 changes: 7 additions & 0 deletions sysa/run.sh
Expand Up @@ -36,6 +36,9 @@ build musl-1.1.24 musl-1.1.24.sh checksums/pass2
# Rebuild tcc-musl using new musl
build tcc-0.9.27 tcc-musl-pass2.sh checksums/tcc-musl-pass2

# Rebuild sed using musl
build sed-4.0.9

# Rebuild bzip2 using musl
build bzip2-1.0.8 bzip2-1.0.8.sh checksums/bzip2-pass2

Expand Down Expand Up @@ -82,8 +85,12 @@ build autoconf-2.13

build autoconf-2.12

build libtool-1.4 pass1.sh checksums/pass1

build binutils-2.14

build libtool-1.4 pass2.sh checksums/pass2

# Build musl with fewer patches
build musl-1.1.24 binutils-rebuild.sh checksums/pass3 patches-pass3
populate_device_nodes
Expand Down
1 change: 1 addition & 0 deletions sysa/sed-4.0.9/checksums
@@ -0,0 +1 @@
de7d06a5c0b0a4b52307771f60dd711d0ae9ae0b14562ad6d26942785aaf0909 /after/bin/sed
33 changes: 33 additions & 0 deletions sysa/sed-4.0.9/mk/main.mk
@@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later

CC = tcc
AR = tcc -ar

CPPFLAGS = -DENABLE_NLS=0 \
-DHAVE_FCNTL_H \
-DHAVE_ALLOCA_H \
-DSED_FEATURE_VERSION=\"4.0\" \
-DVERSION=\"4.0.9\" \
-DPACKAGE=\"sed\"
CFLAGS = -I . -I lib

.PHONY: all

LIB_SRC = alloca getopt1 getopt utils regex obstack strverscmp mkstemp
LIB_OBJ = $(addprefix lib/, $(addsuffix .o, $(LIB_SRC)))

SED_SRC = compile execute regexp fmt sed
SED_OBJ = $(addprefix sed/, $(addsuffix .o, $(SED_SRC)))

all: sed/sed

libsed.a: $(LIB_OBJ)
$(AR) cr $@ $^

sed/sed: $(SED_OBJ) libsed.a
$(CC) -o $@ $^

install:
install sed/sed $(PREFIX)/bin
14 changes: 14 additions & 0 deletions sysa/sed-4.0.9/sed-4.0.9.sh
@@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later

src_prepare() {
default_src_prepare

cp lib/regex_.h lib/regex.h
touch config.h
}

src_install() {
default_src_install
}