Date: Tue, 03 Feb 2015 23:07:02 +0100 From: Juraj Lutter <wilbury@gmail.com> To: freebsd-arm@freebsd.org Subject: Re: Issue with arm cross compiler xdev on FreeBSD 10.1 Message-ID: <54D14686.1050109@gmail.com> In-Reply-To: <E6F58301-CB83-430E-BB39-276ED2B936AD@bsdimp.com> References: <CAHVoyEfgQRWf3KWPZayF4U0eKKijJeCUkVbnxjG3eVLKBFzZyw@mail.gmail.com> <B52C5E17-21D2-4114-8792-429EE4C5AB47@bsdimp.com> <CAHVoyEf2h4iZ4t=dWFbHAX=aeuS93mef_7hyC1Z37YRvNU5iTA@mail.gmail.com> <CAHVoyEfLyMNMH9YoHouTpK-8GQ6FvUHynOPAzqOh7A35z7-41w@mail.gmail.com> <E6F58301-CB83-430E-BB39-276ED2B936AD@bsdimp.com>
index | next in thread | previous in thread | raw e-mail
Hi,
I've ran into the very same situation and found out following:
- In gnu/lib/libgcc/Makefile there is something like
"-I${.CURDIR}/../../../sys/arm/include" in .if ${TARGET_CPUARCH} ==
"arm" section
- In contrib/gcc/config/arm/libunwind.S there is #include
<machine/acle-compat.h> instead of, for example, #include <acle-compat.h>
There is some problems with checking for ARM architecture as gcc's
builtin __ARM_ARCH_6ZK__ is defined but acle-compat.h still complains
that it can not find proper ARM architecture.
Am I missing something? (On HEAD)
On 01/12/15 17:52, Warner Losh wrote:
> I think there’s an issue with head. I keep running into the acle-compat.h issue
> but when I look for it I can’t reproduce it.
>
> Warner
>
>
>> On Jan 10, 2015, at 1:42 AM, Kai Noetzel <kai.noetzel@gmail.com> wrote:
>>
>> I retried to build the arm cross compiler with the sources of 10.1. It took
>> a while but the following worked:
>>
>> svn co http://svn.freebsd.org/base/release/10.1.0/ /usr/src2
>> make XDEV=arm XDEV_ARCH=armv6 WITH_GCC=1 xdev
>>
>> ....
>> sh /usr/src2/tools/install.sh -C -o root -g wheel -m 444 libln.a
>> //usr/armv6-freebsd/usr/lib
>> //usr/armv6-freebsd/usr/lib/libl.a -> //usr/armv6-freebsd/usr/lib/libln.a
>> //usr/armv6-freebsd/usr/lib/libfl.a -> //usr/armv6-freebsd/usr/lib/libln.a
>> cd //usr/armv6-freebsd/usr/bin; mkdir -p ../../../../usr/bin; for i in *;
>> do ln -sf ../..//usr/armv6-freebsd/usr/bin/$i
>> ../../../../usr/bin/armv6-freebsd-$i; ln -sf
>> ../..//usr/armv6-freebsd/usr/bin/$i
>> ../../../../usr/bin/armv6-freebsd10.1-$i; done
>>
>> Is there an issue with head or am I doing something wrong?
>>
>>
>> On Fri, Jan 9, 2015 at 11:52 PM, Kai Noetzel <kai.noetzel@gmail.com> wrote:
>>
>>> Hi Warner,
>>>
>>> I tried to issue your command and it ran for quite a while but stopped
>>> finally with the following error:
>>>
>>> cc -c -O -pipe -DTARGET_ARM_EABI -DIN_GCC -DIN_LIBGCC2
>>> -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT
>>> -I/usr/src/gnu/lib/libgcc/../../../contrib/gcclibs/include
>>> -I/usr/src/gnu/lib/libgcc/../../../contrib/gcc/config
>>> -I/usr/src/gnu/lib/libgcc/../../../contrib/gcc -I.
>>> -I/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools -Dinhibit_libc
>>> -fno-inline -std=gnu99 -fheinous-gnu-extensions -Qunused-arguments
>>> -fvisibility=hidden -DHIDE_EXPORTS -fPIC -fexceptions -D__GLIBC__=3
>>> -DElfW=__ElfN -o libunwind.o
>>> /usr/src/gnu/lib/libgcc/../../../contrib/gcc/config/arm/libunwind.S
>>> /usr/src/gnu/lib/libgcc/../../../contrib/gcc/config/arm/libunwind.S:29:10:
>>> fatal error: 'machine/acle-compat.h' file not found
>>> #include <machine/acle-compat.h>
>>> ^
>>> 1 error generated.
>>> *** Error code 1
>>>
>>> Stop.
>>> make[4]: stopped in /usr/src/gnu/lib/libgcc
>>> *** Error code 1
>>>
>>> Stop.
>>> make[3]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make[2]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make[1]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make: stopped in /usr/src
>>>
>>> On Fri, Jan 9, 2015 at 11:30 PM, Warner Losh <imp@bsdimp.com> wrote:
>>>
>>>> Let’s get back to basics…
>>>>
>>>> can you do the following?
>>>>
>>>> make buildworld TARGET_ARCH=armv6 WITHOUT_CLANG=t
>>>> WITHOUT_CLANG_BOOTSTRAP=t WITH_GCC=t WITH_GCC_BOOTSTRAP=t
>>>>
>>>> ????
>>>>
>>>> Warner
>>>>
>>>>
>>>>
>>>>> On Jan 9, 2015, at 3:26 PM, Kai Noetzel <kai.noetzel@gmail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I'm having issues trying to build the arm cross compiler on the
>>>> following
>>>>> system:
>>>>>
>>>>> root@bsdcompy:/usr/src # uname -a
>>>>> FreeBSD bsdcompy 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov
>>>> 11
>>>>> 21:02:49 UTC 2014
>>>>> root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC
>>>>> amd64
>>>>>
>>>>> I checked out:
>>>>>
>>>>> svn co http://svn.freebsd.org/base/head /usr/src
>>>>>
>>>>> When I run:
>>>>>
>>>>> root@bsdcompy:/usr/src # make XDEV=arm XDEV_ARCH=armv6 WITH_GCC=1 xdev
>>>>>
>>>>> I get the following error:
>>>>>
>>>>> ......
>>>>> ===> xdev lib/libelftc (obj,depend,all)
>>>>> ===> xdev usr.bin/addr2line (obj,depend,all)
>>>>> cc -O2 -pipe
>>>>> -I/usr/src/usr.bin/addr2line/../../contrib/elftoolchain/libelftc
>>>>> -I/usr/src/usr.bin/addr2line/../../contrib/elftoolchain/common
>>>> -std=gnu99
>>>>> -fstack-protector -Qunused-arguments -c
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:105:39:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> warnx("dwarf_tag: %s", dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:119:14:
>>>>> error: use of undeclared identifier 'DW_DLV_ERROR'
>>>>> if (ret == DW_DLV_ERROR)
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:122:8:
>>>>> warning: implicit declaration of function 'dwarf_formstring' is invalid
>>>> in
>>>>> C99 [-Wimplicit-function-declaration]
>>>>> if (dwarf_formstring(sub_at, &func0, &de))
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:136:7:
>>>>> warning: implicit declaration of function 'dwarf_global_formref' is
>>>> invalid
>>>>> in C99 [-Wimplicit-function-declaration]
>>>>> if (dwarf_global_formref(spec_at, &ref, &de))
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:138:7:
>>>>> warning: implicit declaration of function 'dwarf_offdie' is invalid in
>>>> C99
>>>>> [-Wimplicit-function-declaration]
>>>>> if (dwarf_offdie(dbg, ref, &spec_die, &de))
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:150:13:
>>>>> error: use of undeclared identifier 'DW_DLV_ERROR'
>>>>> if (ret == DW_DLV_ERROR)
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:151:54:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> errx(EXIT_FAILURE, "dwarf_child: %s", dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:157:13:
>>>>> error: use of undeclared identifier 'DW_DLV_ERROR'
>>>>> if (ret == DW_DLV_ERROR)
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:158:58:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> errx(EXIT_FAILURE, "dwarf_siblingof: %s",
>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:189:22:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:210:7:
>>>>> warning: implicit declaration of function 'dwarf_srclines' is invalid in
>>>>> C99 [-Wimplicit-function-declaration]
>>>>> if (dwarf_srclines(die, &lbuf, &lcount, &de) !=
>>>> DW_DLV_OK) {
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:211:45:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> warnx("dwarf_srclines: %s", dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:219:8:
>>>>> warning: implicit declaration of function 'dwarf_lineaddr' is invalid in
>>>>> C99 [-Wimplicit-function-declaration]
>>>>> if (dwarf_lineaddr(lbuf[i], &lineaddr, &de)) {
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:221:22:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:224:8:
>>>>> warning: implicit declaration of function 'dwarf_lineno' is invalid in
>>>> C99
>>>>> [-Wimplicit-function-declaration]
>>>>> if (dwarf_lineno(lbuf[i], &lineno, &de)) {
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:226:22:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:229:8:
>>>>> warning: implicit declaration of function 'dwarf_linesrc' is invalid in
>>>> C99
>>>>> [-Wimplicit-function-declaration]
>>>>> if (dwarf_linesrc(lbuf[i], &file0, &de)) {
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:231:22:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:269:14:
>>>>> error: use of undeclared identifier 'DW_DLV_ERROR'
>>>>> if (ret == DW_DLV_ERROR)
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:271:21:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:387:46:
>>>>> error: too many arguments to function call, expected 4, have 6
>>>>> if (dwarf_init(fd, DW_DLC_READ, NULL, NULL, &dbg, &de))
>>>>> ~~~~~~~~~~ ^~~~~~~~~
>>>>> /usr/include/libdwarf.h:144:1: note: 'dwarf_init' declared here
>>>>> int dwarf_init(int, int, Dwarf_Debug *, Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:388:53:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> errx(EXIT_FAILURE, "dwarf_init: %s", dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:390:6:
>>>>> warning: implicit declaration of function 'dwarf_get_elf' is invalid in
>>>> C99
>>>>> [-Wimplicit-function-declaration]
>>>>> if (dwarf_get_elf(dbg, &e, &de) != DW_DLV_OK)
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:391:56:
>>>>> error: passing 'Dwarf_Error' (aka 'struct _Dwarf_Error') to parameter of
>>>>> incompatible type 'Dwarf_Error *' (aka 'struct _Dwarf_Error *'); take
>>>> the
>>>>> address
>>>>> with &
>>>>> errx(EXIT_FAILURE, "dwarf_get_elf: %s",
>>>> dwarf_errmsg(de));
>>>>> ^~
>>>>> &
>>>>> /usr/include/libdwarf.h:122:39: note: passing argument to parameter here
>>>>> const char *dwarf_errmsg(Dwarf_Error *);
>>>>> ^
>>>>>
>>>> /usr/src/usr.bin/addr2line/../../contrib/elftoolchain/addr2line/addr2line.c:407:15:
>>>>> warning: incompatible pointer types passing 'Dwarf_Debug' (aka 'struct
>>>>> _Dwarf_Debug *') to parameter of type 'Dwarf_Debug *'
>>>>> (aka 'struct _Dwarf_Debug **'); take the address with &
>>>>> [-Wincompatible-pointer-types]
>>>>> dwarf_finish(dbg, &de);
>>>>> ^~~
>>>>> &
>>>>> /usr/include/libdwarf.h:141:32: note: passing argument to parameter here
>>>>> int dwarf_finish(Dwarf_Debug *, Dwarf_Error *);
>>>>> ^
>>>>> 9 warnings and 16 errors generated.
>>>>> *** Error code 1
>>>>>
>>>>> Stop.
>>>>> make[2]: stopped in /usr/src/usr.bin/addr2line
>>>>> *** Error code 1
>>>>>
>>>>> Stop.
>>>>> make[1]: stopped in /usr/src
>>>>> *** Error code 1
>>>>>
>>>>> Stop.
>>>>> make: stopped in /usr/src
>>>>>
>>>>> Would be great if someone could take a look.
>>>>> Thanks in advance.
>>>>>
>>>>> Best,
>>>>> Kai
>>>>> _______________________________________________
>>>>> freebsd-arm@freebsd.org mailing list
>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
>>>>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
>>>>
>> _______________________________________________
>> freebsd-arm@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54D14686.1050109>
