[OpenWrt-Devel] kirkwood gcc/binutils woe?
nwf
8S9K8UGO5JGPI3U067229BBACKMQIGVH at cmx.ietfng.org
Sat Dec 13 16:28:14 EST 2014
On Wed, Dec 10, 2014 at 10:12:53PM +0100, Harald Geyer wrote:
> Hi!
>
> I ran into the same issue just a few days ago on mxs. Probably most,
> if not all arm targets are affected.
Applying your patch does, indeed, get me a little closer to a working
compiler. However, when I run
$ gcc -v -o hello hello.c
[...]
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/collect2 --eh-frame-hdr -dynamic-linker /lib/ld-uClibc.so.0 -X -m armelf_linux_eabi -o hello /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/crt1.o /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/crti.o /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/crtbegin.o -L/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3 -L/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/../../.. /tmp/ccjOqw9X.o -lgcc_s -lc -lgcc_s /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/crtend.o /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/crtn.o
/usr/bin/ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
Well, yes, that's true...
$ find / -name \*libgcc\*
/lib/libgcc_s.so.1
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/libgcc_s.so.1
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/libgcc_s.so
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/libgcc.map
/usr/lib/opkg/info/libgcc.list
/usr/lib/opkg/info/libgcc.control
Grepping about at random I find that
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/libgcc_s.so contains the
directive
> GROUP ( libgcc_s.so.1 -lgcc )
So I think the desire to save space expressed in
feeds/packages/devel/gcc/README is well-intentioned but possibly stale, so
maybe the following, too? Maybe we should be removing libgcc_pic.a but not
libgcc.a?
diff --git a/devel/gcc/Makefile b/devel/gcc/Makefile
index c8d8733..8966955 100644
--- a/devel/gcc/Makefile
+++ b/devel/gcc/Makefile
@@ -106,7 +106,6 @@ define Package/gcc/install
ln -s $(REAL_GNU_TARGET_NAME)-gcc $(1)/usr/bin/gcc
ln -s $(REAL_GNU_TARGET_NAME)-gcc $(1)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc-$(PKG_VERSION)
cp -ar $(PKG_INSTALL_DIR)/usr/lib/gcc $(1)/usr/lib
- $(RM) $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)/*.a
cp -ar $(TOOLCHAIN_DIR)/include $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
cp -a $(TOOLCHAIN_DIR)/lib/*.{o,so*} $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
cp -a $(TOOLCHAIN_DIR)/lib/*nonshared*.a $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
diff --git a/devel/gcc/README b/devel/gcc/README
index 6cbc80d..828bd28 100644
--- a/devel/gcc/README
+++ b/devel/gcc/README
@@ -1,8 +1,5 @@
Native GCC that runs on target.
-To save disk space, this GCC only supports dynamic linking on the target box,
-there are no static libraries shipped.
-
For now, this was only tested on a mips target. Others to be done...
- Christian Beier <cb at shoutrlabs.com>
\ No newline at end of file
+ Christian Beier <cb at shoutrlabs.com>
Thanks for your help so far!
--nwf;
> nwf writes:
> > > root at OpenWrt:/tmp# gcc -o hello hello.c
> > > /usr/bin/ld: unrecognised emulation mode: armelf_linux_eabi
> > > Supported emulations: armelf_linux armelf armelfb armelfb_linux
> > > collect2: error: ld returned 1 exit status
> >
> > And I'm really not sure what that means or what to do about it.
>
> Looks like binutils is built for OABI while gcc is built for EABI.
> Since at least mxs is actually using EABI I think gcc is right and
> binutils is wrong.
>
> Try if the following patch solves the problem. (Don't have my test
> board around right now.)
>
> diff --git a/package/devel/binutils/Makefile b/package/devel/binutils/Makefile
> index ff968b9..4aefeca 100644
> --- a/package/devel/binutils/Makefile
> +++ b/package/devel/binutils/Makefile
> @@ -48,6 +48,8 @@ endef
> TARGET_CFLAGS += $(FPIC) -Wno-unused-value
>
> CONFIGURE_ARGS += \
> + --host=$(REAL_GNU_TARGET_NAME) \
> + --target=$(REAL_GNU_TARGET_NAME) \
> --enable-shared \
> --enable-install-libiberty \
> --enable-install-libbfd
>
> HTH,
> Harald
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20141213/329fff3b/attachment.sig>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list