mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

musl (4475B)


      1 #!/usr/bin/env pthbs-build
      2 #+musl-cross-make.de554c172179c402cf921f506a2369385ea83330a5bb4ab6bb6a253db9aac258
      3 #+gnu-make.6236d2c236f658167aece4d10bc59fa913f7fac60938f31bb5ef4a34bad42a94
      4 #+busybox.119bbc99a86bd999b052ed79095bc38c05f6280924ec718a0eb13f1a8d3410c1
      5 #+nawk.596c1948e96cbcabfe3954a70deb947de0c73be1ddde41fafe8291bfec04bdd4
      6 #@sha256:a21336df3bc3b267fbda940d9f533f66b0eacb520b8421cca3ddc943f620a791:merged.patch
      7 #@untar:-z:sha256:a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4:.
      8 
      9 
     10 # - build script start -
     11 
     12 prefix=/versions/$pthbs_package
     13 dest=${pthbs_destdir%/}${prefix}
     14 cd 'musl-1.2.5'
     15 
     16 patch -p1 <../merged.patch
     17 
     18 
     19 mcm=/versions/musl-cross-make.de554c172179c402cf921f506a2369385ea83330a5bb4ab6bb6a253db9aac258
     20 
     21 ./configure \
     22 	--prefix="$prefix" \
     23 	--bindir="$prefix/command" \
     24 	--libdir="$prefix/library" \
     25 	--syslibdir="$prefix/library.so" \
     26 	--includedir="$prefix/include" \
     27 	--host=x86_64-linux-musl \
     28 	--build="$(${CC:-gcc} -dumpmachine)" \
     29 	CC="$mcm/bin/x86_64-linux-musl-gcc" \
     30 	CXX="$mcm/bin/x86_64-linux-musl-g++" \
     31 	LIBCC="$mcm/lib/gcc/x86_64-linux-musl/13.4.0/libgcc.a"
     32 
     33 make -j${JOBS:-1} -l$((1+${JOBS:-1})) \
     34 	MULTILIB_OSDIRNAMES= \
     35 	INFO_DEPS= \
     36 	infodir= \
     37 	ac_cv_prog_lex_root=lex.yy \
     38 	MAKEINFO=false \
     39 	AR="$mcm/bin/x86_64-linux-musl-ar" \
     40 	RANLIB="$mcm/bin/x86_64-linux-musl-ranlib"
     41 make \
     42 	MULTILIB_OSDIRNAMES= \
     43 	INFO_DEPS= \
     44 	infodir= \
     45 	ac_cv_prog_lex_root=lex.yy \
     46 	MAKEINFO=false \
     47 	AR="$mcm/bin/x86_64-linux-musl-ar "\
     48 	RANLIB="$mcm/bin/x86_64-linux-musl-ranlib" \
     49 	DESTDIR="$pthbs_destdir" \
     50 	install install-headers
     51 
     52 mkdir -p "$dest/library.so"
     53 mv -v "$dest/library"/*.so "$dest/library.so/"
     54 ln -s -f libc.so "$dest/library.so/ld-musl-x86_64.so.1"
     55 
     56 
     57 mkdir -p "$dest/.env-template"
     58 printf '%s' >"$dest/.env-template"/'CPATH'  '@ENVROOT@/include'
     59 printf '%s' >"$dest/.env-template"/'LD_LIBRARY_PATH'  '@ENVROOT@/library.so'
     60 printf '%s' >"$dest/.env-template"/'LIBRARY_PATH'  '@ENVROOT@/library'
     61 mkdir -p "$dest/env"
     62 printf '%s' >"$dest/env"/'CFLAGS'  '-Og -g'
     63 printf '%s' >"$dest/env"/'CXXFLAGS'  '-Og -g'
     64 
     65 cd "$pthbs_destdir/versions/$pthbs_package"
     66 find -type d -o -print | awk -F/ '
     67 BEGIN {
     68 	x["./library.so/libc.so"]=1
     69 	x["./library.so/ld-musl-x86_64.so.1"]=1
     70 
     71 	x["./include/assert.h"]=1  # standard headers as per C11
     72 	x["./include/complex.h"]=1
     73 	x["./include/ctype.h"]=1
     74 	x["./include/errno.h"]=1
     75 	x["./include/fenv.h"]=1
     76 	x["./include/float.h"]=1
     77 	x["./include/inttypes.h"]=1
     78 	x["./include/iso646.h"]=1
     79 	x["./include/limits.h"]=1
     80 	x["./include/locale.h"]=1
     81 	x["./include/math.h"]=1
     82 	x["./include/setjmp.h"]=1
     83 	x["./include/signal.h"]=1
     84 	x["./include/stdalign.h"]=1
     85 	x["./include/stdarg.h"]=1
     86 	x["./include/stdbool.h"]=1
     87 	x["./include/stddef.h"]=1
     88 	x["./include/stdint.h"]=1
     89 	x["./include/stdio.h"]=1
     90 	x["./include/stdlib.h"]=1
     91 	x["./include/stdnoreturn.h"]=1
     92 	x["./include/string.h"]=1
     93 	x["./include/tgmath.h"]=1
     94 	x["./include/threads.h"]=1
     95 	x["./include/time.h"]=1
     96 	x["./include/uchar.h"]=1
     97 	x["./include/wchar.h"]=1
     98 	x["./include/wctype.h"]=1
     99 
    100 }
    101 
    102 function r1(s) {
    103 	sub("^[.]/[^/]*", ".", s)
    104 	return s
    105 }
    106 function s1(repl, s) {
    107 	sub("^[.]/[^/]*", "./"repl, s)
    108 	return s
    109 }
    110 function link(src) {
    111 	x[$0]=0
    112 	printf "%s\t%s\n", $0, src
    113 	printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
    114 }
    115 $1!="."{exit 1}
    116 $2 == "env" { link($0); next }
    117 $2 == ".env-template" { link($0); next }
    118 
    119 $2 == "command" { link($0); next }
    120 $2 == "command" { link($0); next }
    121 $2 == "bin" { link(s1("command", $0)); next }
    122 $2 == "sbin" { link(s1("command", $0)); next }
    123 
    124 $2 == "library.so" { link($0); next }
    125 $2 == "library" { link($0); next }
    126 $2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
    127 $2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
    128 
    129 $2 == "share" && $3 == "info" { link(s1("info", r1($0))); next }
    130 $2 == "share" && $3 == "man" { link(s1("man", r1($0))); next }
    131 $2 == "share" && $3 == "doc" { link(s1("doc", r1($0))); next }
    132 
    133 $2 == "config" { link($0); next }
    134 $2 == "man" { link($0); next }
    135 $2 == "info" { link($0); next }
    136 $2 == "doc" { link($0); next }
    137 $2 == "data" { link($0); next }
    138 $2 == "include" { link($0); next }
    139 
    140 
    141 { printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
    142 
    143 END {
    144 	for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
    145 	retcode = 0
    146 	for(fname in x) {
    147 		if(x[fname]) {
    148 			printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
    149 			retcode = 3
    150 		}
    151 	}
    152 	exit retcode
    153 }' >.install-links.new
    154 mv .install-links.new .install-links
    155