From a4e24bad539abc48439e840c687db6ca9de58748 Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Thu, 28 Sep 2023 17:38:27 -0400 Subject: [PATCH] wip --- projects/gnu.org/glibc/package.yml | 98 ++++++++++++++++-------------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/projects/gnu.org/glibc/package.yml b/projects/gnu.org/glibc/package.yml index 1f671b5084..3e2038f23c 100644 --- a/projects/gnu.org/glibc/package.yml +++ b/projects/gnu.org/glibc/package.yml @@ -9,6 +9,11 @@ versions: platforms: linux +runtime: + env: + # Putting ourselves in the LD_LIBRARY_PATH breaks literally everything else... + LD_LIBRARY_PATH: $(echo LD_LIBRARY_PATH | tr ':' '\n' | grep -v {{prefix}} | tr '\n' ':') + build: dependencies: gnu.org/make: '>=3.79' @@ -22,21 +27,22 @@ build: python.org: ^3 kernel.org/linux-headers: '~5.15' working-directory: build - script: | - ../configure $ARGS --with-nonshared-cflags="$CFLAGS" - make all #-j {{hw.concurrency}} - make check - make install DESTDIR={{prefix}} + script: + - ../configure $ARGS --with-nonshared-cflags="$CFLAGS" + - make all + - make check + - make install DESTDIR={{prefix}} - cd {{prefix}}/bin - for s in $SCRIPTS; do - sed -i.bak 's|{{prefix}}|"$(cd "$(dirname "$0")/.." \&\& pwd)"|' $s - rm $s.bak - done + - run: | + for s in $SCRIPTS; do + sed -i.bak 's|{{prefix}}|"$(cd "$(dirname "$0")/.." \&\& pwd)"|' $s + rm $s.bak + done + working-directory: ${{prefix}}/bin - ln -s ../lib/ld-{{ version.marketing }}.so ld.so - test: - make test + - run: ln -s ../lib/ld-{{ version.marketing }}.so ld.so + working-directory: ${{prefix}}/bin + test: make test env: SCRIPTS: - catchsegv @@ -68,41 +74,39 @@ build: test: dependencies: gnu.org/gcc: '*' - script: | - {{prefix}}/lib/ld-{{ version.marketing }}.so --version - ld.so --version + env: + linux/x86-64: + ARCH: x86_64 + linux/aarch64: + ARCH: aarch64 + script: + - ${{prefix}}/lib/ld-{{ version.marketing }}.so --version + - ld.so --version - # 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' ':') - case "{{hw.arch}}" in - x86-64) ARCH=x86_64;; - aarch64) ARCH=aarch64;; - *) - echo "Unsupported architecture {{hw.arch}}" - exit 1 - ;; - esac - gcc \ - -nostdinc \ - -nostdlib \ - -L{{prefix}}/lib \ - -I{{prefix}}/include \ - -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}}/lib/ld-{{ version.marketing }}.so \ - -std=c11 \ - -o test \ - -v \ - $CFLAGS \ - {{prefix}}/lib/crti.o \ - {{prefix}}/lib/crtn.o \ - test.c \ - -pthread \ - -static \ - -fPIC \ - -pie - objdump -p test - ./test + - gcc -o test1 test.c + - ./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 \ + -pthread \ + -static \ + -fPIC \ + -pie + - objdump -p test2 + - ./test2 provides: - bin/catchsegv