gcc в stage3 не работает
mittorn 27 ноября, 2014 - 22:29
Распаковал stage3 для armv5tel на свежекупленный ix2 (пришлось добывать небизибоксовский bzip2 как всегда) и обнаружил, что сабж всегда пытается линковать всё статически. Как результат - первый пакет, который я попытался собрать (ppp) не линкуется:
armv5tel-softfloat-linux-gnueabi-gcc -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o eap.o chap-md5.o session.o mplscp.o md4.o chap_ms.o sha1.o pppcrypt.o multilink.o tdb.o spinlock.o ipv6cp.o eui64.o cbcp.o -lcrypt -lutil -lpam -ldl -ldl options.o: In function `loadplugin': options.c:(.text+0xb18): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.8.3/../../../libdl.a(dlopen.o): In function `dlopen': (.text+0xc): undefined reference to `__dlopen' /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.8.3/../../../libdl.a(dlclose.o): In function `dlclose': (.text+0x0): undefined reference to `__dlclose' /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.8.3/../../../libdl.a(dlsym.o): In function `dlsym': (.text+0xc): undefined reference to `__dlsym' /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.8.3/../../../libdl.a(dlerror.o): In function `dlerror': (.text+0x0): undefined reference to `__dlerror' collect2: error: ld returned 1 exit status
Причём, если вместо -l указывать /lib/libc.so и т.д, всё работает.
Что не менее странно,
int main() { printf("Hello!!!"); return 0; }
с gcc hello.c -o hello
компилируется в
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=7bc49bdb23cb9dad6be22b09afa7e200b0c02398, not stripped
Даже не знаю, куда копать.
»
- Для комментирования войдите или зарегистрируйтесь
В первом случае используется
В первом случае используется armv5tel-softfloat-linux-gnueabi-gcc во втором просто gcc. Тупой вопрос, а это точно один и тот же компилятор?
Чем больше юзерфрендли, тем сложнее юзать.
Только один. Как выяснилось,
Только один. Как выяснилось, на других пакетах он работает. Ума не приложу, почему на ppp он захотел static.
Локальный оверлей растёт