Re: Compiling 11 on a Raspberry B+ 2 failes [not in my experience for -r301975]

2016-06-19 Thread Mark Millard
On 2016-Jun-19, at 7:41 PM, Mark Millard  wrote:

> Quoting Erich Dollansky erichsfreebsdlist at alogt.com Sun Jun 19 23:38:56 
> UTC 2016 :
> 
>> I am trying to compile HEAD on a Raspberry and get always the following
>> error.
>> 
>> Of course, compiling revision 302017 on amd64 works.
>> 
>> Erich
>> 
>> Last Changed Rev: 301974
>> 
>> /usr/src/lib/csu/arm/crt1.c:(.text+0xb4): relocation truncated to
>> fit: R_ARM_CALL against symbol `atexit' defined in .text section
>> in /usr/lib/libc.a(atexit.o) /usr/src/lib/csu/arm/crt1.c:(.text+0xbc):
>> relocation truncated to fit: R_ARM_CALL against symbol `_init_tls'
>> defined in .text section
>> in /usr/lib/libc.a(tls.o) /usr/src/lib/csu/arm/crt1.c:(.text+0xcc):
>> relocation truncated to fit: R_ARM_CALL against symbol `atexit' defined
>> in .text section
>> in /usr/lib/libc.a(atexit.o) /usr/src/lib/csu/arm/crt1.c:(.text+0x174):
>> relocation truncated to fit: R_ARM_CALL against symbol `exit' defined
>> in .text section in /usr/lib/libc.a(exit.o) /usr/lib/crt1.o: In
>> function `finalizer': /usr/src/lib/csu/arm/crt1.c:(.text+0x1ec):
>> relocation truncated to fit: R_ARM_JUMP24 against symbol `_fini'
>> defined in .fini section in /usr/lib/crti.o c++: error: linker command
>> failed with exit code 1 (use -v to see invocation) *** Error code 1
>> 
>> Stop.
>> bmake[4]: stopped in /usr/src.head/usr.bin/clang/clang
>> *** Error code 1
>> 
>> Stop.
>> bmake[3]: stopped in /usr/src.head/usr.bin/clang
>> *** Error code 1
>> 
>> Stop.
>> bmake[2]: stopped in /usr/src.head
>> *** Error code 1
>> 
>> Stop.
>> bmake[1]: stopped in /usr/src.head
>> *** Error code 1
>> 
>> Stop.
>> make: stopped in /usr/src.head
>> [raspberry2]~/System (root) > 
> 
> 
> I've done buildworld buildkernel for -r301975 on an rpi2 (not using  
> WITH_META_MODE=yes) with no problem. The rpi2 was already running -r301975 
> via a amd64 -> rpi2 cross build.
> 
> You do not mention what vintage of 11.0 your -r301974 build was started from. 
> A
> 
> uname -apKU
> 
> output would be appropriate to post as one way of indicating that.

I went back and looked up my old notes from 2016-Jan-18 ( 
https://lists.freebsd.org/pipermail/freebsd-arm/2016-January/013053.html ) and 
it indicates that one must use 11.0 -r294031 or later to build clang 3.8.0.

The issue is clang 3.8.0 being bigger and needing -mlong-calls compiler options 
in more places than the older clang 3.7.1 did.

Quoting from the 2016-Jan-18 message. . .

> The clang 3.8.0 investigation ran into this for building clang and lldb. A 
> quick scan of materials checked out from that branch (my /usr/src is bound to 
> that branch) shows the following as far as what 4 Makefile* or 2 *.mk files 
> list the option someplace:
> 
> > # find /usr/src/ -name .svn -prune -o -name 'Makefile*' -exec grep 
> > mlong-calls {} \; -print
> > STATIC_CXXFLAGS+= -mlong-calls
> > /usr/src/lib/libc++/Makefile
> > STATIC_CFLAGS+= -mlong-calls
> > /usr/src/lib/csu/arm/Makefile
> > CFLAGS+=-mlong-calls
> > /usr/src/usr.bin/clang/lldb/Makefile
> > CFLAGS+= -mlong-calls
> > /usr/src/usr.bin/clang/clang/Makefile
> 
> 
> > # find /usr/src/ -name .svn -prune -o -name '*.mk' -exec grep mlong-calls 
> > {} \; -print
> > STATIC_CXXFLAGS+= -mlong-calls
> > /usr/src/lib/clang/clang.lib.mk
> > CFLAGS+=-G0 -fno-pic -mno-abicalls -mlong-calls
> > /usr/src/sys/conf/kmod.mk
> 
> 
> (That last one is for mips instead of arm and has been around a long time.)

[Back to quoting the recent message. . .]

> My WITH_META_MODE=yes buidlworld buildkernel is still in process.

The WITH_META_MODE=yes build also completed fine. [WITH_META_MODE=yes is a 
recent addition to the build environment.]

> Later below list my src.conf showing my slightly odd choices targeting 
> armv7-a/cortex-a7 explicitly. I'd be surprised if that makes a difference for 
> this issue. You have not provided your src.conf or make.conf or other such 
> context.
> 
> My -r301975 cross builds on amd64 targeting an rpi2 [armv7-a/cortex-a7] have 
> all worked fine (no matter if WITH_META_MODE_yes was in use or not).
> 
> I've only used the system clang 3.8.0 to target armv6 in modern times.
> 
> My src.conf for rpi2 self hosted builds looks like:
> 
>> # more ~/src.configs/src.conf.rpi2-clang-bootstrap.rpi2-host 
>> TO_TYPE=armv6
>> #
>> KERNCONF=RPI2-NODBG
>> TARGET=arm
>> .if ${.MAKE.LEVEL} == 0
>> TARGET_ARCH=${TO_TYPE}
>> .export TARGET_ARCH
>> .endif
>> #
>> #WITH_CROSS_COMPILER=
>> WITH_SYSTEM_COMPILER=
>> #
>> #CPUTYPE=soft
>> WITH_LIBSOFT=
>> WITH_LIBCPLUSPLUS=
>> WITH_BINUTILS_BOOTSTRAP=
>> #WITHOUT_CLANG_BOOTSTRAP=
>> WITH_CLANG=
>> WITH_CLANG_IS_CC=
>> WITH_CLANG_FULL=
>> WITH_CLANG_EXTRAS=
>> WITH_LLDB=
>> #
>> WITH_BOOT=
>> WITHOUT_LIB32=
>> #
>> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
>> WITHOUT_GCC_BOOTSTRAP=
>> WITHOUT_GCC=
>> WITHOUT_GCC_IS_CC=
>> WITHOUT_GNUCXX=
>> #
>> NO_WERROR=
>> #WERROR=
>> MALLOC_PRODUCTION=
>> #
>> WITH_DEBUG_FILES=
>> #
>> XCFLAGS+= -march=armv7-a -mcpu=cortex-a7
>> XCXXFL

RE: Compiling 11 on a Raspberry B+ 2 failes [not in my experience for -r301975]

2016-06-19 Thread Mark Millard
Quoting Erich Dollansky erichsfreebsdlist at alogt.com Sun Jun 19 23:38:56 UTC 
2016 :

> I am trying to compile HEAD on a Raspberry and get always the following
> error.
> 
> Of course, compiling revision 302017 on amd64 works.
> 
> Erich
> 
> Last Changed Rev: 301974
> 
>  /usr/src/lib/csu/arm/crt1.c:(.text+0xb4): relocation truncated to
> fit: R_ARM_CALL against symbol `atexit' defined in .text section
> in /usr/lib/libc.a(atexit.o) /usr/src/lib/csu/arm/crt1.c:(.text+0xbc):
> relocation truncated to fit: R_ARM_CALL against symbol `_init_tls'
> defined in .text section
> in /usr/lib/libc.a(tls.o) /usr/src/lib/csu/arm/crt1.c:(.text+0xcc):
> relocation truncated to fit: R_ARM_CALL against symbol `atexit' defined
> in .text section
> in /usr/lib/libc.a(atexit.o) /usr/src/lib/csu/arm/crt1.c:(.text+0x174):
> relocation truncated to fit: R_ARM_CALL against symbol `exit' defined
> in .text section in /usr/lib/libc.a(exit.o) /usr/lib/crt1.o: In
> function `finalizer': /usr/src/lib/csu/arm/crt1.c:(.text+0x1ec):
> relocation truncated to fit: R_ARM_JUMP24 against symbol `_fini'
> defined in .fini section in /usr/lib/crti.o c++: error: linker command
> failed with exit code 1 (use -v to see invocation) *** Error code 1
> 
> Stop.
> bmake[4]: stopped in /usr/src.head/usr.bin/clang/clang
> *** Error code 1
> 
> Stop.
> bmake[3]: stopped in /usr/src.head/usr.bin/clang
> *** Error code 1
> 
> Stop.
> bmake[2]: stopped in /usr/src.head
> *** Error code 1
> 
> Stop.
> bmake[1]: stopped in /usr/src.head
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/src.head
> [raspberry2]~/System (root) > 


I've done buildworld buildkernel for -r301975 on an rpi2 (not using  
WITH_META_MODE=yes) with no problem. The rpi2 was already running -r301975 via 
a amd64 -> rpi2 cross build.

You do not mention what vintage of 11.0 your -r301974 build was started from. A

uname -apKU

output would be appropriate to post as one way of indicating that.

My WITH_META_MODE=yes buidlworld buildkernel is still in process.

Later below list my src.conf showing my slightly odd choices targeting 
armv7-a/cortex-a7 explicitly. I'd be surprised if that makes a difference for 
this issue. You have not provided your src.conf or make.conf or other such 
context.

My -r301975 cross builds on amd64 targeting an rpi2 [armv7-a/cortex-a7] have 
all worked fine (no matter if WITH_META_MODE_yes was in use or not).

I've only used the system clang 3.8.0 to target armv6 in modern times.

My src.conf for rpi2 self hosted builds looks like:

> # more ~/src.configs/src.conf.rpi2-clang-bootstrap.rpi2-host 
> TO_TYPE=armv6
> #
> KERNCONF=RPI2-NODBG
> TARGET=arm
> .if ${.MAKE.LEVEL} == 0
> TARGET_ARCH=${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> #WITH_CROSS_COMPILER=
> WITH_SYSTEM_COMPILER=
> #
> #CPUTYPE=soft
> WITH_LIBSOFT=
> WITH_LIBCPLUSPLUS=
> WITH_BINUTILS_BOOTSTRAP=
> #WITHOUT_CLANG_BOOTSTRAP=
> WITH_CLANG=
> WITH_CLANG_IS_CC=
> WITH_CLANG_FULL=
> WITH_CLANG_EXTRAS=
> WITH_LLDB=
> #
> WITH_BOOT=
> WITHOUT_LIB32=
> #
> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
> WITHOUT_GCC_BOOTSTRAP=
> WITHOUT_GCC=
> WITHOUT_GCC_IS_CC=
> WITHOUT_GNUCXX=
> #
> NO_WERROR=
> #WERROR=
> MALLOC_PRODUCTION=
> #
> WITH_DEBUG_FILES=
> #
> XCFLAGS+= -march=armv7-a -mcpu=cortex-a7
> XCXXFLAGS+= -march=armv7-a -mcpu=cortex-a7
> # There is no XCPPFLAGS but XCPP ets XCFLAGS content.

The ~/src.configs/make.conf is empty.

The amd64 -> rpi2 cross builds are only different for src.conf by:

> # diff ~/src.configs/src.conf.rpi2-clang-bootstrap.rpi2-host 
> ~/src.configs/src.conf.rpi2-clang-bootstrap.amd64-host 
> 10,11c10,11
> < #WITH_CROSS_COMPILER=
> < WITH_SYSTEM_COMPILER=
> ---
> > WITH_CROSS_COMPILER=
> > WITHOUT_SYSTEM_COMPILER=
> 17c17
> < #WITHOUT_CLANG_BOOTSTRAP=
> ---
> > WITH_CLANG_BOOTSTRAP=


Showing the "on a rpi2" script that runs make for using WITH_META_MODE=yes :

> # more 
> ~/sys_build_scripts.rpi2-host/make_rpi2_nodebug_clang_bootstrap-rpi2-host.sh 
> kldload -n filemon && \
> script 
> ~/sys_typescripts/typescript_make_rpi2_nodebug_clang_bootstrap-rpi2-host-$(date
>  +%Y-%m-%d:%H:%M:%S) \
> env __MAKE_CONF="/root/src.configs/make.conf" 
> SRC_ENV_CONF="/root/src.configs/src.conf.rpi2-clang-bootstrap.rpi2-host" \
> WITH_META_MODE=yes \
> MAKEOBJDIRPREFIX="/usr/obj/clang/arm.armv6" \
> make $*

My /usr/src tree has some changes/additions --but mostly for powerpc64 and 
powerpc issues:

> # svnlite status /usr/src/
> M   /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> M   /usr/src/lib/csu/powerpc64/Makefile
> ?   /usr/src/sys/amd64/include/include
> ?   /usr/src/sys/arm/conf/RPI2-NODBG
> ?   /usr/src/sys/arm/include/include
> M   /usr/src/sys/boot/ofw/Makefile.inc
> M   /usr/src/sys/boot/powerpc/Makefile
> M   /usr/src/sys/boot/powerpc/Makefile.inc
> M   /usr/src/sys/boot/uboot/Makefile.inc
> M   /usr/src/sys/conf/Makefile.powerpc
> M   /usr/src/sys/conf/kern.mk
> M   /usr/src/sys/conf/kmod.mk
> M   /usr/

Compiling 11 on a Raspberry B+ 2 failes

2016-06-19 Thread Erich Dollansky
Hi,

I am trying to compile HEAD on a Raspberry and get always the following
error.

Of course, compiling revision 302017 on amd64 works.

Erich

Last Changed Rev: 301974

 /usr/src/lib/csu/arm/crt1.c:(.text+0xb4): relocation truncated to
fit: R_ARM_CALL against symbol `atexit' defined in .text section
in /usr/lib/libc.a(atexit.o) /usr/src/lib/csu/arm/crt1.c:(.text+0xbc):
relocation truncated to fit: R_ARM_CALL against symbol `_init_tls'
defined in .text section
in /usr/lib/libc.a(tls.o) /usr/src/lib/csu/arm/crt1.c:(.text+0xcc):
relocation truncated to fit: R_ARM_CALL against symbol `atexit' defined
in .text section
in /usr/lib/libc.a(atexit.o) /usr/src/lib/csu/arm/crt1.c:(.text+0x174):
relocation truncated to fit: R_ARM_CALL against symbol `exit' defined
in .text section in /usr/lib/libc.a(exit.o) /usr/lib/crt1.o: In
function `finalizer': /usr/src/lib/csu/arm/crt1.c:(.text+0x1ec):
relocation truncated to fit: R_ARM_JUMP24 against symbol `_fini'
defined in .fini section in /usr/lib/crti.o c++: error: linker command
failed with exit code 1 (use -v to see invocation) *** Error code 1

Stop.
bmake[4]: stopped in /usr/src.head/usr.bin/clang/clang
*** Error code 1

Stop.
bmake[3]: stopped in /usr/src.head/usr.bin/clang
*** Error code 1

Stop.
bmake[2]: stopped in /usr/src.head
*** Error code 1

Stop.
bmake[1]: stopped in /usr/src.head
*** Error code 1

Stop.
make: stopped in /usr/src.head
[raspberry2]~/System (root) > 
___
freebsd-...@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "freebsd-arm-unsubscr...@freebsd.org"
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"