This commit is contained in:
sin 2013-09-27 11:21:42 +01:00
parent a264666ff2
commit 8aab0e9013
5 changed files with 211 additions and 2 deletions

1
DEPS
View File

@ -1,2 +1,3 @@
dropbear zlib
gzip zlib
tmux libevent ncurses

View File

@ -27,7 +27,6 @@ install() {
ln -sf busybox fsck
ln -sf busybox fuser
ln -sf busybox getty
ln -sf busybox gzip
ln -sf busybox hexdump
ln -sf busybox hwclock
ln -sf busybox ifconfig

27
pkgs/gzip Normal file
View File

@ -0,0 +1,27 @@
url=$mirror/gzip-1.4.tar.xz
fetch() {
wget -c $url -O src/gzip-1.4.tar.xz
}
unpack() {
pushd src
[ -d gzip-1.4 ] || tar xJf gzip-1.4.tar.xz
popd
}
build() {
pushd src/gzip-1.4
gnulibfix lib
CC="x86_64-linux-musl-gcc -static" ./configure --prefix=$root --libdir=$libcroot/lib || return 1
echo "#define __printf__ printf" >> lib/config.h
echo "#define rpl_fprintf fprintf" >> lib/config.h
make -j$nprocs || return 1
popd
}
install() {
pushd src/gzip-1.4
make install || return 1
popd
}

View File

@ -7,5 +7,5 @@ version=0.0
mirror=http://dl.2f30.org/morpheus-pkgs/$arch/$version
export top root libcroot nprocs mirror
PATH=$root/opt/cross/x86_64-linux-musl/bin:$PATH
PATH=$root/opt/cross/x86_64-linux-musl/bin:$top/stuff/bin:$PATH
export PATH

182
stuff/bin/gnulibfix Executable file
View File

@ -0,0 +1,182 @@
#!/bin/sh
empty_file() {
rm -f "$1"
touch "$1"
}
dir="$1"
# fix files breaking the build entirely
for i in freadahead.c fseterr.c ; do empty_file "$dir"/$i ; done
echo "void close_stdin(void) {}" > "$dir"/closein.c
# fix stuff trying to reimplement libc
culprits=`cat << EOF
accept4
acosl
alloca
alphasort
asinl
asprintf
atanl
atexit
atoll
bcopy
btowc
chown
closedir
cosl
dirfd
dprintf
dup2
dup3
_Exit
expl
fchdir
fchown-stub
fdatasync
fdopendir
ffs
flock
fnmatch
forkpty
fpending
fprintf
freeaddrinfo
fsync
ftell
ftruncate
futimens
gai_strerror
getaddrinfo
getdelim
getdtablesize
getgroups
gethostname
getline
getlogin
getlogin_r
getnameinfo
getpagesize
getpass
getsubopt
gettimeofday
getusershell
gmtime_r
grantpt
imaxabs
imaxdiv
inet_ntop
inet_pton
isblank
iswblank
lchmod
lchown
ldexp
ldexpl
link
linkat
logl
mbrlen
mbrtowc
mbsinit
memmove
mempcpy
mkdtemp
mkfifo
mkfifoat
mknod
mknodat
mkstemp
mktime
nanosleep
nl_langinfo
open
openat
opendir
openpty
pclose
perror
pipe
pipe2
poll
popen
pread
printf
pselect
ptsname
pwrite
raise
readdir
readlink
renameat
rewinddir
setenv
sigaction
sigaddset
sigdelset
sigemptyset
sigfillset
sigismember
sigpending
sigprocmask
sinl
snprintf
spawnattr_destroy
spawnattr_getdefault
spawnattr_getflags
spawnattr_getpgroup
spawnattr_getsigmask
spawnattr_init
spawnattr_setdefault.c
spawnattr_setflags
spawnattr_setpgroup
spawnattr_setsigmask
spawn_faction_addclose
spawn_faction_adddup2
spawn_faction_addopen
spawn_faction_destroy
spawn_faction_init
spawn_factions_addopen
spawn_factions_destroy
spawn_factions_init
sprintf
sqrtl
stdio-read
stdio-write
strcasecmp
strcasestr
strchrnul
strcspn
strncasecmp
strndup
strnlen
strpbrk
strsep
strsignal
strstr
strtod
strtoimax
strtol
symlink
symlinkat
tanl
tcgetsid
timegm
time_r
times
tmpfile
uname
unlockpt
unsetenv
usleep
vasprintf
vdprintf
vfprintf
waitpid
wcrtomb
wctob
EOF
`
#fixme check fsusage
for i in $culprits ; do empty_file "$dir"/$i.c ; done