GithubHelp home page GithubHelp logo

sabotage-linux / sabotage Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pikhq/sabotage

542.0 542.0 68.0 10.43 MB

a radical and experimental distribution based on musl libc and busybox

Home Page: http://sabo.xyz

License: Other

Shell 56.73% Perl 2.46% Awk 2.48% C 32.74% Makefile 1.25% Java 0.01% Roff 3.47% xBase 0.87%
busybox desktop distro efficient embedded fast hardcore lightweight linux musl no-bullshit no-dbus no-systemd radical server

sabotage's People

Contributors

a2e1c3b30a00b5ea08423139c8c80b88 avatar aario avatar asiekierka avatar bobertlo avatar c00kiemon5ter avatar cmb avatar davidar avatar francesco149 avatar jonlap avatar justincormack avatar leahneukirchen avatar libfud avatar mirabilos avatar mitchweaver avatar nemykal avatar nero avatar notwa avatar pbraun9 avatar pikhq avatar prazzb avatar redglasses avatar rhencke avatar robotanarchy avatar rofl0r avatar sjpschutte avatar soul9 avatar staalmannen avatar strake avatar xcko avatar yasar11732 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sabotage's Issues

musl fails to built

Here is build_state0_musl.log

patching file include/math.h
ln -sf ../arch/i686/bits include/bits
sh include/bits/alltypes.h.sh > include/bits/alltypes.h
/bin/sh: include/bits/alltypes.h: Böyle bir dosya ya da dizin yok
make: *** [include/bits/alltypes.h] Hata 1

Error means "no such a file or directory" in Turkish.

musl-git not building

  1. It needs ARCH set to build. adding this to config gets further
  2. It is looking for KEEP/musl.config.mak which is not there... so it fails later.

fltk build segfaults on mips

while building tests with the "fluid" command line program

Generating tree.cxx and header from tree.fl...          
make[1]: *** [tree.cxx] Segmentation fault   

./fltk-1.3.x-r9708/test/Makefile 262/497 52%
# FLUID file rules
.fl.cxx .fl.h:  ../fluid/fluid$(EXEEXT)
        echo Generating $@ and header from $<...
        ../fluid/fluid$(EXEEXT) -c $<
root:/src/build/fltk13/fltk-1.3.x-r9708/test$ gdb --args ../fluid/fluid -c tree.fl

this looks very similar to an issue i had with first ppc, then arm where C++ static initializers were'nt run.

at that time it was Generating fast_slow.cxx and header from fast_slow.fl...

busybox should build setuid stuff into a separate binary

tools that need to switch to root like su should be compiled in a separate run and placed in a different binary with setuid.
if it gets to bloated, using another su would make sense (can probably be implemented in < 50 LOC C)

gdb doesnt work

Reading symbols from /src/a.out...I'm sorry, Dave, I can't do that. Symbol format `elf64-x86-64' unknown.

must be a compatibility issue with libbfd of binutils 2.22

it'll probably work to just remove the --disable-bfd or so from pkg/gdb, so that it will build a compatible version.
the problem is that binutils installs bfd into prefix, and sometimes gdb includes the system header instead of its own.
also building libbfd twice is superfluous work, the optimal solution would be a patch that lets gdb cooperate properly with the already installed stuff.

SSL certificates for gnu wget, git, curl, ...

https://gist.github.com/2347749

this is a script which downloads it from cvs. cvs package could be copied from GregorR's fork, but the prefered solution is to have it download a tarball so it can be distributed as a normal package

the generated file should go to /etc/ssl/certs/ca-bundle.crt

it is referenced by:

  • gnu wget

    Set the certificate authority bundle file to the location provided by OpenSSL

    echo ca_certificate = /etc/ssl/certs/ca-bundle.crt" >> $R/etc/wgetrc
  • curl
    ./configure --with-ca-bundle=/etc/ssl/certs/ca-bundle.crt

32 bit build on 64 bit host

I can't work out how to build 32 bit Sabotage on a 64 bit host (other I guess than creating a 32 bit chroot before I start). Setting cross compile or gcc as gcc -m32 either still builds 64 bit or fails. Am I missing something obvious?

alsa lib is apparently missing some kernel settings/drivers

access("//share/alsa/alsa.conf.d/", R_OK) = 0
stat64("//share/alsa/alsa.conf.d/", {st_mode=0, st_size=2, ...}) = 0
open("//share/alsa/alsa.conf.d/", O_RDONLY|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
getdents64(3, /* 3 entries */, 2048)    = 80
getdents64(3, /* 0 entries */, 2048)    = 0
close(3)                                = 0
access("/etc/asound.conf", R_OK)        = -1 ENOENT (No such file or directory)
access("/root/.asoundrc", R_OK)         = -1 ENOENT (No such file or directory)
open("/dev/snd/controlC0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/dev/aloadC0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
writev(2, [{"cannot open mixer: No such file "..., 45}, {NULL, 0}], 2cannot open mixer: No such file or directory

the missing /dev/snd/controlC0 may be part of the issue

python fails to build libffi aka _ctypes

the built python works, though it shouldn't be of great use without libffi.
reportedly the build error doesnt happen on i386

*** WARNING: renaming "_ctypes" since importing it failed: unknown error
Failed to build these modules:
_ctypes

GTK+ apps need a shitload of shared state that needs to be regenerated after install of some programs

gio-module-cache, glib-compile-schemas, gtk-update-icon-cache, ...

not yet figured how to deal with this shit

possible solutions:
1)

  • add some script to bin which can be called manually whenever gtk+ crap has been installed
  • warn in butch that package XY depends on this hack
    2) add some mechanism to butch that invokes said script whenever such a crap-app is installed, maybe before finish when a bunch of stuff was installed
    3) calling this stuff from each buildscript, and risk broken databases due to concurrent access etc

init

Booting from my bootstrapped system stops with a kernel panic. Root is correctly set and I chainload from another syslinux. The system works perfectly under chroot.

Have I missed a step after bootstrap to make it bootable? I did not find a mkinitcpio or similar command.
should I pass init=/bin/runsv on the kernel line?

gcc __attribute__ ((constructor)) doesn't work with sabotage's gcc wrapper

this prevents openal from functioning correctly (mutex ListLock won't get initialized to be a recursive mutex because alc_init() is not called, thus raising a deadlock)

that attr seem to be very prone to miscompilation

http://www.faqs.org/docs/Linux-HOWTO/Program-Library-HOWTO.html#INIT-AND-CLEANUP

"Shared libraries must not be compiled with the gcc arguments -nostartfiles'' or-nostdlib''. If those arguments are used, the constructor/destructor routines will not be executed (unless special measures are taken)."

the problem is that gcc/ld doesn't set the DT_INIT bit in the elf header when -nostdlib is used

perl SIGILLs on mips

this is critical, without perl we can't even build half of sabotage

Making all in dist/threads-shared                                                                          
 make all PERL_CORE=1 LIBPERL_A=libperl.a LINKTYPE=dynamic                                                 
make[1]: Entering directory `/src/build/perl/perl-5.16.0/dist/threads-shared'                              
cp lib/threads/shared.pm ../../lib/threads/shared.pm                                                       
../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp  -typemap ../../lib/ExtUtils/typemap  
cc -c   -D_GNU_SOURCE -D_BSD_SOURCE -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -
Running Mkbootstrap for threads::shared ()                                                                 
chmod 644 shared.bs                                                                                        
rm -f ../../lib/auto/threads/shared/shared.so                                                              
cc  -shared -O2 shared.o  -o ../../lib/auto/threads/shared/shared.so    \                                  
        \                                                                                                  

chmod 755 ../../lib/auto/threads/shared/shared.so                                                          
cp shared.bs ../../lib/auto/threads/shared/shared.bs                                                       
chmod 644 ../../lib/auto/threads/shared/shared.bs                                                          
make[1]: Leaving directory `/src/build/perl/perl-5.16.0/dist/threads-shared'                               
./perl -f -Ilib pod/buildtoc -q                                                                            
make: *** [pod/perltoc.pod] Illegal instruction                                                            


DEBUGGING=-g   or -Doptimize=-g      = -g 

Program received signal SIGILL, Illegal instruction.
0x00593c44 in PL_laststype ()
(gdb) bt
#0  0x00593c44 in PL_laststype ()
#1  0x00593c30 in PL_fold_locale ()
Backtrace stopped: frame did not save the PC


(gdb) b *0x00593c30
Breakpoint 3 at 0x593c30
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /src/build/perl/perl-5.16.0/perl -f -Ilib pod/buildtoc -q

Program received signal SIGSEGV, Segmentation fault.
0x004ef46c in Perl_free_tmps ()
(gdb) bt
#0  0x004ef46c in Perl_free_tmps ()
#1  0x004b4f80 in Perl_pp_nextstate ()
#2  0x004b4694 in Perl_runops_standard ()
#3  0x00433250 in Perl_call_sv ()
#4  0x00433ae8 in Perl_call_list ()
#5  0x00416bcc in S_process_special_blocks ()
#6  0x0042d500 in Perl_newATTRSUB_flags ()
#7  0x0042db68 in Perl_newATTRSUB ()
#8  0x0042e0e4 in Perl_utilize ()
#9  0x00467134 in Perl_yyparse ()
#10 0x004f687c in S_doeval ()
#11 0x00505100 in Perl_pp_require ()
#12 0x004b4694 in Perl_runops_standard ()
#13 0x00433250 in Perl_call_sv ()
#14 0x00433ae8 in Perl_call_list ()
#15 0x00416bcc in S_process_special_blocks ()
#16 0x0042d500 in Perl_newATTRSUB_flags ()
#17 0x0042db68 in Perl_newATTRSUB ()
#18 0x0042e0e4 in Perl_utilize ()
#19 0x00467134 in Perl_yyparse ()
#20 0x00439298 in perl_parse ()
#21 0x00416088 in main ()

perl build fails on arm

at the same point as in issue #58

Starting program: /src/build/perl/perl-5.16.0/perl -f -Ilib pod/buildtoc -q

Program received signal SIGSEGV, Segmentation fault.
0x00000030 in ?? ()
(gdb) backtrace
#0 0x00000030 in ?? ()
#1 0x76f279d8 in _init () at crt/arm/crtn.s:9
#2 0x76f5c980 in do_init_fini (p=0x2705f0) at src/ldso/dynlink.c:696
#3 0x76f5e234 in dlopen (file=0x201fb0 "lib/auto/Cwd/Cwd.so", mode=1) at src/ldso/dynlink.c:1093
#4 0x001d49e4 in XS_DynaLoader_dl_load_file (cv=0x2a5690) at DynaLoader.xs:193

the issue is caused by a textrel in musl's new arm init fini code:

readelf of Cwd.so
00000a08 00003003 R_ARM_REL32 00000000 __init_array_start

__init_array_start became a textrel because the symbol was not hidden.

everything should be built using -Werror-implicit-function-declaration

an implicit function declaration is almost certain to run into runtime crashes, at least on x64 where sizeof(void*) != sizeof(int)

my idea is to put the flag into each stage0_ pkg, and those that get built before relocate_toolchain, which in turn should hardcode it into musl-gcc (aka /bin/gcc), so that all further pkgs will have it set automatically.

i expect an entire build using this flag to uncover quite some hidden bugs...

mirror.wzff.de

mirror.wzff.de has an ipv6 address but appears not to be listening for http on ipv6, only on ipv4, so I need to patch all the scripts to use wget -4 in order to eg get butch to download.

use busybox 1.20 in stage1 and new passwd encryption it offers

see busybox commit d45efd3a9f6854ab662afe272aeae5779300b126

+config FEATURE_DEFAULT_PASSWD_ALGO
+   string "Default password encryption method (passwd -a, cryptpw -m parameter)"
+   default "des"
+   depends on PASSWD || CRYPTPW
+   help
+     Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
+

imho sha512 should be used

this requires the KEEP/etc files to be updated as well

python doesn't find installed modules

python thinks it is better to search in the dir its binary is in (it even resolves symlinks) instead of search in its prefix as it's supposed to.

basically what happens is

  1. python sees it's /bin/python
  2. it resolves the symlink: /bin/../opt/python/bin and removes the last bin component
  3. it then adds /lib/python2.7 to that to search for things.
open("/opt/python/lib/python2.7/setuptools.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/setuptoolsmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/setuptools.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/setuptools.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/opt/python/lib/python2.7/plat-linux2/setuptools", 0x7fffcd02d560) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/plat-linux2/setuptools.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/plat-linux2/setuptoolsmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/plat-linux2/setuptools.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/plat-linux2/setuptools.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/opt/python/lib/python2.7/lib-tk/setuptools", 0x7fffcd02d560) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-tk/setuptools.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-tk/setuptoolsmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-tk/setuptools.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-tk/setuptools.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/opt/python/lib/python2.7/lib-dynload/setuptools", 0x7fffcd02d560) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-dynload/setuptools.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-dynload/setuptoolsmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-dynload/setuptools.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/lib-dynload/setuptools.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/opt/python/lib/python2.7/site-packages/setuptools", 0x7fffcd02d560) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/site-packages/setuptools.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/site-packages/setuptoolsmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/site-packages/setuptools.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/python/lib/python2.7/site-packages/setuptools.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
writev(2, [{"", 0}, {"from setuptools import setup\n", 29}], 2from setuptools import setup
writev(2, [{"", 0}, {"No module named setuptools", 26}], 2No module named setuptools) = 26

there's a harcoded PYTHONPATH that is passed during the build, maybe that messes up things (it's possible that an empty prefix breaks the logic that generates it):

gcc -c -fno-strict-aliasing -D_GNU_SOURCE -D_BSD_SOURCE -fPIC -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -DPYTHONPATH='":plat-linux2:lib-tk:lib-old"' \
        -DPREFIX='""' \
        -DEXEC_PREFIX='""' \
        -DVERSION='"2.7"' \
        -DVPATH='""' \
        -o Modules/getpath.o ./Modules/getpath.c

debug session:

./Python/import.c 
static struct filedescr *
find_module(char *fullname, char *subname, PyObject *path, char *buf,
            size_t buflen, FILE **p_fp, PyObject **p_loader)
{

b find_module
cond 1 fullname[0] == 's' && fullname[1] == 'e'


#1  0x00000000004e4d19 in _Py_DisplaySourceLine (f=<file at remote 0x7ffff7fd2270>, filename=0x7ffff7f252dc "../../pip/pip-1.3.1/setup.py", 
    lineno=6, indent=4) at Python/traceback.c:131
131         xfp = fopen(filename, "r" PY_STDIOTEXTMODE);
(gdb) p filename
$21 = 0x7ffff7f252dc "../../pip/pip-1.3.1/setup.py"

1301            path = PySys_GetObject("path");
PySys_GetObject (name=0x55f016 "path") at Python/sysmodule.c:52
52          PyThreadState *tstate = PyThreadState_GET();
(gdb) n
53          PyObject *sd = tstate->interp->sysdict;
(gdb) 
54          if (sd == NULL)
(gdb) 
56          return PyDict_GetItemString(sd, name);

./Python/pythonrun.c:    interp->sysdict = PyModule_GetDict(sysmod);

./Python/sysmodule.c:    sysdict = PyModule_GetDict(m);
void
PySys_SetPath(char *path)

#0  PySys_SetPath (
    path=0x803de0 "/bin/..//opt/python/lib/python27.zip:/bin/..//opt/python/lib/python2.7/:/bin/..//opt/python/lib/python2.7/plat-linux2:/bin/..//opt/python/lib/python2.7/lib-tk:/bin/..//opt/python/lib/python2.7/lib-old"...) at Python/sysmodule.c:1552
#1  0x00000000004d86ae in Py_InitializeEx (install_sigs=1) at Python/pythonrun.c:230
#2  0x00000000004d8c93 in Py_Initialize () at Python/pythonrun.c:377
#3  0x0000000000415237 in Py_Main (argc=2, argv=0x7fffffffec78) at Modules/main.c:545
#4  0x0000000000414308 in main (argc=2, argv=0x7fffffffec78) at ./Modules/python.c:23

Breakpoint 2, Py_InitializeEx (install_sigs=1) at Python/pythonrun.c:230
230         PySys_SetPath(Py_GetPath());
Breakpoint 3, Py_GetPath () at ./Modules/getpath.c:691
691         if (!module_search_path)
(gdb) p module_search_path
$1 = 0x803de0 "/bin/..//opt/python/lib/python27.zip:/bin/..//opt/python/lib/python2.7/:/bin/..//opt/python/lib/python2.7/plat-linux2:/bin/..//opt/python/lib/python2.7/lib-tk:/bin/..//opt/python/lib/python2.7/lib-old"...


Breakpoint 5, calculate_path () at ./Modules/getpath.c:655
655             module_search_path = buf;

603         /* This is the only malloc call in this file */
604         buf = (char *)PyMem_Malloc(bufsz);
605
606         if (buf == NULL) {
607             /* We can't exit, so print a warning and limp along */
608             fprintf(stderr, "Not enough memory for dynamic PYTHONPATH.\n");
609             fprintf(stderr, "Using default static PYTHONPATH.\n");
610             module_search_path = PYTHONPATH;
611         }
612         else {
(gdb) 
613             /* Run-time value of $PYTHONPATH goes first */
614             if (rtpypath) {
615                 strcpy(buf, rtpypath);
616                 strcat(buf, delimiter);
617             }
618             else
619                 buf[0] = '\0';
620
621             /* Next is the default zip path */
622             strcat(buf, zip_path);
(gdb) 
623             strcat(buf, delimiter);
624
625             /* Next goes merge of compile-time $PYTHONPATH with
626              * dynamically located prefix.
627              */
(gdb) p PYTHONPATH
$2 = ":plat-linux2:lib-tk:lib-old"

tinygl output is broken

the colors are broken: only green and violet tones can be seen, and the image is visible twice horizontally.
tests with a SDL port of tinygl, where only the code of the examples was changed to use SDL instead of X11, have shown that the bug is almost definitely in the X11 rendering code.
( https://github.com/kimperator/TinySDGL )

name resolution issue

This could be an upstream issue, or a config issue, not sure yet.

Noticed while trying to install musl-git that name resol

root:/src$ curl git.etalabs.net
curl: (6) Couldn't resolve host 'git.etalabs.net'
root:/src$ ping git.etalabs.net
ping: bad address 'git.etalabs.net'

Other addresses (eg www.etalabs.net) are fine, and it is fine from non Sabotage hosts. It is a CNAME, but other CNAMEs are fine. And its not a .cx thing either, so a bit mystified...

Its not just a busybox error, real wget gives

wget git.etalabs.net
--2013-07-24 08:24:31--  http://git.etalabs.net/
Resolving git.etalabs.net... failed: Non-recoverable error.
wget: unable to resolve host address `git.etalabs.net'

So it could well be a Musl upstream issue... havent got time to debug now...

gdb can't handle debug info in shared libs

any dll that is loaded through musl's dynlinker misses the debug infos in gdb.
this makes debugging shared stuff a major PITA.

however libc.so itself can be debugged.

git fails to build: issues with ssl in curl

root:/src$ cat /src/logs/build_git.log
GIT_VERSION = 1.7.6.5
* new build flags or prefix
CC daemon.o
* new link flags
CC abspath.o
CC advice.o
CC alias.o
CC alloc.o
CC archive.o
CC archive-tar.o
CC archive-zip.o
CC attr.o
CC base85.o
CC bisect.o
CC blob.o
CC branch.o
CC bundle.o
CC cache-tree.o
CC color.o
CC combine-diff.o
CC commit.o
CC config.o
CC connect.o
CC convert.o
CC copy.o
CC csum-file.o
CC ctype.o
CC date.o
CC decorate.o
CC diffcore-break.o
CC diffcore-delta.o
CC diffcore-order.o
CC diffcore-pickaxe.o
CC diffcore-rename.o
CC diff-delta.o
CC diff-lib.o
CC diff-no-index.o
CC diff.o
CC dir.o
CC editor.o
CC entry.o
CC environment.o
CC exec_cmd.o
CC fsck.o
CC graph.o
CC grep.o
CC hash.o
GEN common-cmds.h
CC help.o
CC hex.o
CC ident.o
CC levenshtein.o
CC list-objects.o
CC ll-merge.o
CC lockfile.o
CC log-tree.o
CC mailmap.o
CC match-trees.o
CC merge-file.o
CC merge-recursive.o
CC name-hash.o
CC notes.o
CC notes-cache.o
CC notes-merge.o
CC object.o
CC pack-check.o
CC pack-refs.o
CC pack-revindex.o
CC pack-write.o
CC pager.o
CC parse-options.o
CC patch-delta.o
CC patch-ids.o
CC path.o
CC pkt-line.o
CC preload-index.o
CC pretty.o
CC progress.o
CC quote.o
CC reachable.o
CC read-cache.o
CC reflog-walk.o
CC refs.o
CC remote.o
CC replace_object.o
CC rerere.o
CC resolve-undo.o
CC revision.o
CC run-command.o
CC server-info.o
CC setup.o
CC sha1-array.o
CC sha1-lookup.o
CC sha1_file.o
CC sha1_name.o
CC shallow.o
CC sideband.o
CC sigchain.o
CC strbuf.o
CC string-list.o
CC submodule.o
CC symlinks.o
CC tag.o
CC trace.o
CC transport.o
CC transport-helper.o
CC tree-diff.o
CC tree.o
CC tree-walk.o
CC unpack-trees.o
CC url.o
CC usage.o
CC userdiff.o
CC utf8.o
CC walker.o
CC wrapper.o
CC write_or_die.o
CC ws.o
CC wt-status.o
CC xdiff-interface.o
CC zlib.o
CC compat/strlcpy.o
CC compat/memmem.o
AR libgit.a
CC xdiff/xdiffi.o
CC xdiff/xprepare.o
CC xdiff/xutils.o
CC xdiff/xemit.o
CC xdiff/xmerge.o
CC xdiff/xpatience.o
AR xdiff/lib.a
LINK git-daemon
CC fast-import.o
LINK git-fast-import
CC imap-send.o
LINK git-imap-send
CC shell.o
LINK git-shell
CC show-index.o
LINK git-show-index
CC upload-pack.o
LINK git-upload-pack
CC http-backend.o
LINK git-http-backend
CC sh-i18n--envsubst.o
LINK git-sh-i18n--envsubst
CC http.o
CC http-walker.o
CC http-fetch.o
LINK git-http-fetch
/lib/libcurl.a(libcurl_la-ssluse.o): In function ossl_send': ssluse.c:(.text+0x73a): undefined reference toSSL_write'
ssluse.c:(.text+0x78a): undefined reference to SSL_get_error' /lib/libcurl.a(libcurl_la-ssluse.o): In functionossl_recv':
ssluse.c:(.text+0x88b): undefined reference to SSL_read' ssluse.c:(.text+0x8db): undefined reference toSSL_get_error'
/lib/libcurl.a(libcurl_la-ssluse.o): In function servercert': ssluse.c:(.text+0xd74): undefined reference toSSL_get_peer_certificate'
ssluse.c:(.text+0xe59): undefined reference to SSL_get_peer_cert_chain' ssluse.c:(.text+0x1f2d): undefined reference toSSL_get_verify_result'
/lib/libcurl.a(libcurl_la-ssluse.o): In function ossl_connect_common': ssluse.c:(.text+0x26eb): undefined reference toSSL_connect'
ssluse.c:(.text+0x2702): undefined reference to SSL_get_error' ssluse.c:(.text+0x2812): undefined reference toSSL_get_current_cipher'
ssluse.c:(.text+0x281a): undefined reference to SSL_CIPHER_get_name' ssluse.c:(.text+0x28c9): undefined reference toSSL_get_verify_result'
ssluse.c:(.text+0x29d5): undefined reference to SSLv23_client_method' ssluse.c:(.text+0x29f4): undefined reference toSSL_CTX_free'
ssluse.c:(.text+0x29fc): undefined reference to SSL_CTX_new' ssluse.c:(.text+0x2a29): undefined reference toSSL_CTX_ctrl'
ssluse.c:(.text+0x2a8b): undefined reference to SSL_CTX_ctrl' ssluse.c:(.text+0x2b05): undefined reference toSSL_CTX_set_default_passwd_cb_userdata'
ssluse.c:(.text+0x2b16): undefined reference to SSL_CTX_set_default_passwd_cb' ssluse.c:(.text+0x2b99): undefined reference toTLSv1_client_method'
ssluse.c:(.text+0x2bc7): undefined reference to SSL_get1_session' ssluse.c:(.text+0x2c9f): undefined reference toSSLv2_client_method'
ssluse.c:(.text+0x2cc5): undefined reference to SSLv3_client_method' ssluse.c:(.text+0x2cfc): undefined reference toSSL_CTX_set_cipher_list'
ssluse.c:(.text+0x2d3b): undefined reference to SSL_CTX_load_verify_locations' ssluse.c:(.text+0x2dd6): undefined reference toSSL_CTX_callback_ctrl'
ssluse.c:(.text+0x2ea1): undefined reference to SSL_CTX_use_certificate' ssluse.c:(.text+0x2fb3): undefined reference toSSL_CTX_use_certificate'
ssluse.c:(.text+0x2ff4): undefined reference to SSL_CTX_use_certificate_chain_file' ssluse.c:(.text+0x304e): undefined reference toSSL_CTX_use_certificate_file'
ssluse.c:(.text+0x3085): undefined reference to SSL_CTX_ctrl' ssluse.c:(.text+0x30b8): undefined reference toTLSv1_client_method'
ssluse.c:(.text+0x311d): undefined reference to SSL_CTX_get_cert_store' ssluse.c:(.text+0x31e9): undefined reference toSSL_CTX_set_srp_username'
ssluse.c:(.text+0x3235): undefined reference to SSL_new' ssluse.c:(.text+0x3249): undefined reference toSSL_get_certificate'
ssluse.c:(.text+0x326b): undefined reference to SSL_get_privatekey' ssluse.c:(.text+0x328a): undefined reference toSSL_free'
ssluse.c:(.text+0x3294): undefined reference to SSL_CTX_check_private_key' ssluse.c:(.text+0x32e6): undefined reference toSSL_CTX_use_PrivateKey_file'
ssluse.c:(.text+0x332e): undefined reference to SSL_SESSION_free' ssluse.c:(.text+0x3350): undefined reference toSSL_CTX_get_cert_store'
ssluse.c:(.text+0x33ac): undefined reference to SSL_CTX_set_verify' ssluse.c:(.text+0x33ec): undefined reference toSSL_free'
ssluse.c:(.text+0x3400): undefined reference to SSL_new' ssluse.c:(.text+0x3420): undefined reference toSSL_set_connect_state'
ssluse.c:(.text+0x347a): undefined reference to SSL_set_session' ssluse.c:(.text+0x3573): undefined reference toSSL_CTX_use_PrivateKey'
ssluse.c:(.text+0x35b2): undefined reference to SSL_CTX_use_PrivateKey' ssluse.c:(.text+0x35ff): undefined reference toSSL_set_fd'
ssluse.c:(.text+0x362f): undefined reference to SSL_CTX_set_srp_password' ssluse.c:(.text+0x3669): undefined reference toSSL_CTX_set_cipher_list'
ssluse.c:(.text+0x382e): undefined reference to SSL_ctrl' ssluse.c:(.text+0x386f): undefined reference toSSL_CTX_check_private_key'
ssluse.c:(.text+0x38b6): undefined reference to SSL_CTX_ctrl' ssluse.c:(.text+0x38dc): undefined reference toSSL_CTX_add_client_CA'
/lib/libcurl.a(libcurl_la-ssluse.o): In function Curl_ossl_init': ssluse.c:(.text+0x39ba): undefined reference toSSL_load_error_strings'
ssluse.c:(.text+0x39bf): undefined reference to SSL_library_init' /lib/libcurl.a(libcurl_la-ssluse.o): In functionCurl_ossl_check_cxn':
ssluse.c:(.text+0x3a26): undefined reference to SSL_peek' /lib/libcurl.a(libcurl_la-ssluse.o): In functionCurl_ossl_close':
ssluse.c:(.text+0x3c70): undefined reference to SSL_shutdown' ssluse.c:(.text+0x3c7d): undefined reference toSSL_set_connect_state'
ssluse.c:(.text+0x3c8a): undefined reference to SSL_free' ssluse.c:(.text+0x3cb0): undefined reference toSSL_CTX_free'
/lib/libcurl.a(libcurl_la-ssluse.o): In function Curl_ossl_shutdown': ssluse.c:(.text+0x3d59): undefined reference toSSL_read'
ssluse.c:(.text+0x3d67): undefined reference to SSL_get_error' ssluse.c:(.text+0x3da9): undefined reference toSSL_free'
ssluse.c:(.text+0x3dfe): undefined reference to SSL_get_shutdown' ssluse.c:(.text+0x3f0e): undefined reference toSSL_shutdown'
/lib/libcurl.a(libcurl_la-ssluse.o): In function Curl_ossl_data_pending': ssluse.c:(.text+0x3fbb): undefined reference toSSL_pending'
/lib/libcurl.a(libcurl_la-ssluse.o): In function Curl_ossl_session_free': ssluse.c:(.text+0x3f31): undefined reference toSSL_SESSION_free'
collect2: ld returned 1 exit status
make: *** [git-http-fetch] Error 1

PS. is there a site similar to the AUR to share build scripts or do each person need an individual github branch? DS.

transmission fails on ARM due to missing __aeabi_atexit

rofl0r/musl@e28acae

"
arm: add __aeabi_atexit()
arm eabi requires this symbol for C++ dtors.
usually it is provided by libstdc++, but when a C++ program
doesn't use the std lib (free-standing), the libc has to provide
it.
this was encountered while building transmission, which
depends on such a C++ library (libutp).

example case: http://sprunge.us/UEBc

this function is nearly identical to __cxa_atexit, but it has the
order of argumens swapped for "performance reasons".
see page 25 of

http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043d/IHI0043D_rtabi.pdf

there are other aeabi specific C++ support functions missing, but
it is not clear yet that GCC makes use of them so we omit them for
the moment.
"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.