From 4040f83f332cfb6dab7e8fd7ea5f7119180b26d4 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Fri, 12 Jan 2024 06:47:23 -0500 Subject: [PATCH 1/4] wip --- projects/gnu.org/glibc/package.yml | 121 +++++++++++++++++++++++++++++ projects/gnu.org/glibc/test.c | 8 ++ 2 files changed, 129 insertions(+) create mode 100644 projects/gnu.org/glibc/package.yml create mode 100644 projects/gnu.org/glibc/test.c diff --git a/projects/gnu.org/glibc/package.yml b/projects/gnu.org/glibc/package.yml new file mode 100644 index 0000000000..3e921193e4 --- /dev/null +++ b/projects/gnu.org/glibc/package.yml @@ -0,0 +1,121 @@ +distributable: + url: https://ftp.gnu.org/gnu/glibc/glibc-{{ version.raw }}.tar.gz + strip-components: 1 + +versions: + #TODO HTML listing: https://ftp.gnu.org/gnu/glibc/ + - 2.28 + # - 2.33 + +platforms: + linux + +build: + dependencies: + gnu.org/make: ^3.79 + gnu.org/gawk: ^3 + gnu.org/gcc: ^13.2 + gnu.org/gettext: ~0.22.4 + gnu.org/texinfo: ^7 + gnu.org/bison: ^3 + perl.org: ^5 + python.org: ~3.11 + working-directory: build + script: + - ../configure $ARGS + - make all -j {{hw.concurrency}} + - make install + + - run: | + for s in $SCRIPTS; do + sed -i.bak 's|{{prefix}}|"$(cd "$(dirname "$0")/.." \&\& pwd)"|' $s + rm $s.bak + done + working-directory: ${{prefix}}/bin + + - run: ln -s ../lib/ld-{{ version.marketing }}.so ld.so + working-directory: ${{prefix}}/bin + test: + make test + env: + SCRIPTS: + - catchsegv + - ldd + - mtrace + - sotruss + - tzselect + - xtrace + ARGS: + - --prefix={{ prefix }} + - --disable-debug + - --disable-dependency-tracking + - --disable-silent-rules + - --disable-werror + - --enable-obsolete-rpc + - --without-gd + - --without-selinux + - --enable-kernel=2.6.0 + - --with-binutils={{deps.gnu.org/binutils.prefix}}/bin + - --disable-multi-arch # ChatGPT suggested + CFLAGS: -O2 -fPIC + CXXFLAGS: -O2 -fPIC + LDFLAGS: -pie + +test: + dependencies: + gnu.org/gcc: '*' + env: + linux/x86-64: + ARCH: x86_64 + linux/aarch64: + ARCH: aarch64 + script: + # Putting ourselves in the LD_LIBRARY_PATH breaks literally everything else... + - export LD_LIBRARY_PATH="$(echo LD_LIBRARY_PATH | tr ':' '\n' | grep -v {{prefix}} | tr '\n' ':')" + + - gcc -o test1 test.c -fPIC -pie + - ./test1 + + - | + gcc \ + -nostdinc \ + -nostdlib \ + -I{{deps.gnu.org/gcc.prefix}}/lib/gcc/$ARCH-unknown-linux-gnu/{{deps.gnu.org/gcc.version}}/include \ + -Wl,--rpath="{{prefix}}/lib" \ + -Wl,--dynamic-linker={{prefix}}/bin/ld.so \ + -std=c11 \ + -o test2 \ + -v \ + $CFLAGS \ + {{prefix}}/lib/crti.o \ + {{prefix}}/lib/crt1.o \ + {{prefix}}/lib/crtn.o \ + test.c \ + -fPIC \ + -pie + + - test "$(./test2)" = "gnu_get_libc_version() = {{version.marketing}}" + +provides: + - bin/catchsegv + - bin/gencat + - bin/getconf + - bin/getent + - bin/iconv + - bin/ldd + - bin/locale + - bin/localedef + - bin/makedb + - bin/mtrace + - bin/pcprofiledump + - bin/pldd + - bin/sotruss + - bin/sprof + - bin/tzselect + - bin/xtrace + - sbin/iconvconfig + - sbin/ldconfig + - sbin/nscd + - sbin/sln + - sbin/zdump + - sbin/zic \ No newline at end of file diff --git a/projects/gnu.org/glibc/test.c b/projects/gnu.org/glibc/test.c new file mode 100644 index 0000000000..28a4ec3181 --- /dev/null +++ b/projects/gnu.org/glibc/test.c @@ -0,0 +1,8 @@ +#define _GNU_SOURCE +#include +#include + +int main(int argc, char **argv) { + /* Basic library version check. */ + printf("gnu_get_libc_version() = %s\n", gnu_get_libc_version()); +} From 336a05d4a83e179d0ab1640b317ccf54b256aaeb Mon Sep 17 00:00:00 2001 From: Max Howell Date: Fri, 12 Jan 2024 11:51:23 -0500 Subject: [PATCH 2/4] wip --- projects/gnu.org/glibc/package.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/projects/gnu.org/glibc/package.yml b/projects/gnu.org/glibc/package.yml index 3e921193e4..aba4d6a45d 100644 --- a/projects/gnu.org/glibc/package.yml +++ b/projects/gnu.org/glibc/package.yml @@ -12,8 +12,8 @@ platforms: build: dependencies: - gnu.org/make: ^3.79 - gnu.org/gawk: ^3 + gnu.org/make: '>=3.79' + gnu.org/gawk: '>=3' gnu.org/gcc: ^13.2 gnu.org/gettext: ~0.22.4 gnu.org/texinfo: ^7 @@ -22,8 +22,12 @@ build: python.org: ~3.11 working-directory: build script: + #FIXME + # Putting ourselves in the LD_LIBRARY_PATH breaks literally everything else... + - export LD_LIBRARY_PATH=/root/.pkgx/zlib.net/v1.3.0/lib:/root/.pkgx/gnome.org/libxml2/v2.12.3/lib:/root/.pkgx/tukaani.org/xz/v5.4.5/lib:/root/.pkgx/perl.org/v5.38.2/lib:/root/.pkgx/sourceware.org/bzip2/v1.0.8/lib:/root/.pkgx/openssl.org/v1.1.1w/lib:/root/.pkgx/libexpat.github.io/v2.5.0/lib:/root/.pkgx/gnu.org/gcc/v13.2.0/lib:/root/.pkgx/gnu.org/gawk/v5.3.0/lib:/root/.pkgx/sqlite.org/v3.44.2/lib:/root/.pkgx/gnu.org/texinfo/v7.1.0/lib:/root/.pkgx/x.org/exts/v1.3.5/lib:/root/.pkgx/invisible-island.net/ncurses/v6.4.0/lib:/root/.pkgx/gnu.org/bison/v3.8.2/lib:/root/.pkgx/gnu.org/gettext/v0.22.4/lib:/root/.pkgx/gnu.org/mpfr/v4.2.1/lib:/root/.pkgx/gnu.org/mpc/v1.3.1/lib:/root/.pkgx/x.org/xcb/v1.16.0/lib:/root/.pkgx/python.org/v3.11.7/lib:/root/.pkgx/x.org/x11/v1.8.7/lib:/root/.pkgx/sourceware.org/libffi/v3.4.4/lib:/root/.pkgx/libpng.org/v1.6.40/lib:/root/.pkgx/gnu.org/gmp/v6.3.0/lib:/root/.pkgx/gnu.org/readline/v8.2.0/lib:/root/.pkgx/x.org/xau/v1.0.11/lib:/root/.pkgx/bytereef.org/mpdecimal/v2.5.1/lib:/root/.pkgx/freetype.org/v2.13.2/lib:/root/.pkgx/tcl-lang.org/v8.6.13/lib:/root/.pkgx/x.org/xdmcp/v1.1.4/lib:/root/.pkgx/gnu.org/binutils/v2.41.0/lib + - ../configure $ARGS - - make all -j {{hw.concurrency}} + - make all #-j {{hw.concurrency}} - make install - run: | From ca9c31b2baf6a657a05730d1944b3eb86f145699 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Wed, 31 Jan 2024 15:37:54 -0500 Subject: [PATCH 3/4] wip --- projects/gnu.org/glibc/package.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/projects/gnu.org/glibc/package.yml b/projects/gnu.org/glibc/package.yml index aba4d6a45d..12186a2346 100644 --- a/projects/gnu.org/glibc/package.yml +++ b/projects/gnu.org/glibc/package.yml @@ -8,7 +8,7 @@ versions: # - 2.33 platforms: - linux + linux/x86-64 build: dependencies: @@ -20,14 +20,11 @@ build: gnu.org/bison: ^3 perl.org: ^5 python.org: ~3.11 - working-directory: build + working-directory: + build script: - #FIXME - # Putting ourselves in the LD_LIBRARY_PATH breaks literally everything else... - - export LD_LIBRARY_PATH=/root/.pkgx/zlib.net/v1.3.0/lib:/root/.pkgx/gnome.org/libxml2/v2.12.3/lib:/root/.pkgx/tukaani.org/xz/v5.4.5/lib:/root/.pkgx/perl.org/v5.38.2/lib:/root/.pkgx/sourceware.org/bzip2/v1.0.8/lib:/root/.pkgx/openssl.org/v1.1.1w/lib:/root/.pkgx/libexpat.github.io/v2.5.0/lib:/root/.pkgx/gnu.org/gcc/v13.2.0/lib:/root/.pkgx/gnu.org/gawk/v5.3.0/lib:/root/.pkgx/sqlite.org/v3.44.2/lib:/root/.pkgx/gnu.org/texinfo/v7.1.0/lib:/root/.pkgx/x.org/exts/v1.3.5/lib:/root/.pkgx/invisible-island.net/ncurses/v6.4.0/lib:/root/.pkgx/gnu.org/bison/v3.8.2/lib:/root/.pkgx/gnu.org/gettext/v0.22.4/lib:/root/.pkgx/gnu.org/mpfr/v4.2.1/lib:/root/.pkgx/gnu.org/mpc/v1.3.1/lib:/root/.pkgx/x.org/xcb/v1.16.0/lib:/root/.pkgx/python.org/v3.11.7/lib:/root/.pkgx/x.org/x11/v1.8.7/lib:/root/.pkgx/sourceware.org/libffi/v3.4.4/lib:/root/.pkgx/libpng.org/v1.6.40/lib:/root/.pkgx/gnu.org/gmp/v6.3.0/lib:/root/.pkgx/gnu.org/readline/v8.2.0/lib:/root/.pkgx/x.org/xau/v1.0.11/lib:/root/.pkgx/bytereef.org/mpdecimal/v2.5.1/lib:/root/.pkgx/freetype.org/v2.13.2/lib:/root/.pkgx/tcl-lang.org/v8.6.13/lib:/root/.pkgx/x.org/xdmcp/v1.1.4/lib:/root/.pkgx/gnu.org/binutils/v2.41.0/lib - - ../configure $ARGS - - make all #-j {{hw.concurrency}} + - make all V=1 #-j {{hw.concurrency}} - make install - run: | From 85a6332e080113dff9c00b82bee6850391ddd67c Mon Sep 17 00:00:00 2001 From: Max Howell Date: Fri, 2 Feb 2024 13:14:25 -0500 Subject: [PATCH 4/4] wip --- projects/gnu.org/glibc/package.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/projects/gnu.org/glibc/package.yml b/projects/gnu.org/glibc/package.yml index 12186a2346..3c3caeb4f5 100644 --- a/projects/gnu.org/glibc/package.yml +++ b/projects/gnu.org/glibc/package.yml @@ -71,9 +71,6 @@ test: linux/aarch64: ARCH: aarch64 script: - # Putting ourselves in the LD_LIBRARY_PATH breaks literally everything else... - - export LD_LIBRARY_PATH="$(echo LD_LIBRARY_PATH | tr ':' '\n' | grep -v {{prefix}} | tr '\n' ':')" - - gcc -o test1 test.c -fPIC -pie - ./test1 @@ -119,4 +116,4 @@ provides: - sbin/nscd - sbin/sln - sbin/zdump - - sbin/zic \ No newline at end of file + - sbin/zic