Hi Wookey,
Thanks for your response. Here is the error I get when I do the "make
check" step on the foundation model after having done the "configure" and
"make" steps on the x86_64 linux build machine. I used the configure
options you provided.
1. On x86_64 linux build machine:
---------------------------------------------------
$./configure --prefix=/usr --enable-cxx --enable-fat --build
x86_64-linux-gnu --host aarch64-linux-gnu --.target aarch64-linux-gnu
--libdir=/usr/lib/aarch64-linux-gnu \
AR=aarch64-linux-gnu-ar CC="aarch64-linux-gnu-gcc" CFLAGS="-Wall
-g -O3 -Wa,--defsym,USES_THUMB=1" \
CXX="aarch64-linux-gnu-g++" CXXFLAGS=""
$make
. . .
build goes fine with the following final lines in the output:
. . .
f.o printf/snprntffuns.o printf/sprintf.o printf/sprintffuns.o
printf/vasprintf.o printf/vfprintf.o printf/vprintf.o printf/vsnprintf.o
printf/vsprintf.o printf/repl-vsnprintf.o scanf/doscan.o scanf/fscanf.o
scanf/fscanffuns.o scanf/scanf.o scanf/sscanf.o scanf/sscanffuns.o
scanf/vfscanf.o scanf/vscanf.o scanf/vsscanf.o rand/rand.o rand/randclr.o
rand/randdef.o rand/randiset.o rand/randlc2s.o rand/randlc2x.o
rand/randmt.o rand/randmts.o rand/rands.o rand/randsd.o rand/randsdui.o
rand/randbui.o rand/randmui.o
libtool: link: aarch64-linux-gnu-ranlib .libs/libgmp.a
libtool: link: rm -fr .libs/libgmp.lax
libtool: link: ( cd ".libs" && rm -f "libgmp.la" && ln -s "../libgmp.la" "
libgmp.la" )
make[2]: Leaving directory
`/home/anilss/Linaro/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64'
make[1]: Leaving directory
`/home/anilss/Linaro/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64
$
--------------------------------------------------
2. On Foundation Model I encounter the following errors when doing "make
check"
-------------------------------------------------
root@genericarmv8:~/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64# make
check
make check-recursive
make[1]: Entering directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64'
Making check in tests
make[2]: Entering directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64/tests'
Making check in .
make[3]: Entering directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64/tests'
make libtests.la t-bswap t-constants t-count_zeros t-gmpmax t-hightomask
t-modlinv t-popc t-parity t-sub
make[4]: Entering directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64/tests'
/bin/bash ../libtool --tag=CC --mode=compile aarch64-linux-gnu-gcc
-std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -O2 -pedantic
-fomit-frame-pointer -march=armv8-a -mtune=generic -c -o memory.lo memory.c
libtool: compile: aarch64-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.
-I.. -I.. -O2 -pedantic -fomit-frame-pointer -march=armv8-a -mtune=generic
-c memory.c -fPIC -DPIC -o .libs/memory.o
*../libtool: line 1128: aarch64-linux-gnu-gcc: command not found*
make[4]: *** [memory.lo] Error 1
make[4]: Leaving directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64/tests'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64/tests'
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64/tests'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory
`/home/root/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64'
make: *** [check] Error 2
root@genericarmv8:~/anilss/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64#
Thanks and Regards,
Anil
On 12 November 2013 19:20, Wookey <wookey(a)wookware.org> wrote:
> +++ Anil Singhar [2013-11-12 18:44 +0530]:
> > Hi,
> >
> > I am trying to cross compile a package wi the following steps. The
> build
> > goes fine except that when I try to run the same on the foundation
> model
> > it doesn't work. Here are all the steps in details:
> >
> > 1. Installed the linaro gcc and set up the environment as follows:
> >
> ------------------------------------------------------------------------------------------------
> > export
> >
> AARCH64_TOOLCHAIN=/home/anilss/Linaro/tools/gcc-linaro-aarch64-linux-gnu-4.7-2013.04-20130415_linux/bin
> > export PATH=$PATH:$AARCH64_TOOLCHAIN
> > export ARCH=aarch64
> > export CROSS_COMPILE=aarch64-linux-gnu-
> >
> > 2. Now on my build machine (x86_64 machine running linux), from source
> > root of the package (i.e. GMP) I want to cross compile:
> > anilss@anilss
> :~/Linaro/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64$./configure
> > --build=coreisbr-unknown-linux-gnu --host=aarch64-linux-gnu
> > --target=aarch64-linux-gnu
> > anilss@anilss:~/Linaro/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64$make
> >
> > 3. Then On the foundation model, where the above source tree is
> mounted, I
> > do:
> > $ make check
> >
> > However this fails.
>
> You have to say _how_ it fails for anyone to have any chance of helping.
>
> > Any ideas on what is going wrong..?
> > Also is the triplet correct for host and foundation model (running oe
> > linux)?
>
> Maybe. Not sure what a coreisbr-unknown-linux-gnu is.
>
> Here is a build log from an (ubuntu) gmp cross-build which might give some
> clues:
>
> http://people.linaro.org/~wookey/buildd/quantal-arm64/sbuild-ma/gmp_2:5.0.2…
> where the configure line was:
> ../configure --prefix=/usr --enable-cxx --enable-fat --build
> x86_64-linux-gnu --host aarch64-linux-gnu --target aarch64-linux-gnu
> --libdir=/usr/lib/aarch64-linux-gnu \
> AR=aarch64-linux-gnu-ar CC="aarch64-linux-gnu-gcc" CFLAGS="-Wall
> -g -O3 -Wa,--defsym,USES_THUMB=1" \
> CXX="aarch64-linux-gnu-g++" CXXFLAGS=""
>
> There are probably some OE crossbuild logs online somewhere you could
> compare with too, which would be more directly relevant.
>
> Wookey
> --
> Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM
> http://wookware.org/
>
> _______________________________________________
> linaro-dev mailing list
> linaro-dev(a)lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
>
Hi everybody,
During the LCU13 cross distro session Riku brought up the topic of
aarch64 BE standardization. After consulting with some of our tools
team, we propose the following standard:
Linker path: /lib/ld-linux-aarch64be.so.1
Autoconf triplet: aarch64be-*-linux*
Basically, we'd like to tack a be at the end of aarch64. Will this work
for everybody?
--
Brendan Conoboy / Red Hat, Inc. / blc(a)redhat.com
Hi,
I am trying to cross compile a package wi the following steps. The build
goes fine except that when I try to run the same on the foundation model it
doesn't work. Here are all the steps in details:
1. Installed the linaro gcc and set up the environment as follows:
------------------------------------------------------------------------------------------------
export
AARCH64_TOOLCHAIN=/home/anilss/Linaro/tools/gcc-linaro-aarch64-linux-gnu-4.7-2013.04-20130415_linux/bin
export PATH=$PATH:$AARCH64_TOOLCHAIN
export ARCH=aarch64
export CROSS_COMPILE=aarch64-linux-gnu-
2. Now on my build machine (x86_64 machine running linux), from source root
of the package (i.e. GMP) I want to cross compile:
anilss@anilss:~/Linaro/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64$./configure
--build=coreisbr-unknown-linux-gnu --host=aarch64-linux-gnu
--target=aarch64-linux-gnu
anilss@anilss:~/Linaro/pkgs/gmp/cross_arm64/gmp-5.1.3-aarch64$make
3. Then On the foundation model, where the above source tree is mounted, I
do:
$ make check
However this fails.
Any ideas on what is going wrong..?
Also is the triplet correct for host and foundation model (running oe
linux)?
Thanks and Regards,
Anil
Hi everyone,
After a break, we are again having a cross distribution collaboration
session[1]. The event is on wednesday 12.10pm PST (aka 19.10 UTC). The
session will be broadcast on google hangouts[2] for remote
participation.
If you have any great ideas you think other ARM distributions would
benefit as well, wish to see something standardized, or have some
gripes about supporting ARM - now is your chance to get heard. If you
can't make it on wednesday (or just want to start discussing
already!), feel free to email the cross-distro mailing listing and I
can get it added to the agenda anyways.
Riku
[1] http://lcu-13.zerista.com/event/member/85125
[2] https://plus.google.com/events/c73vv18k4b74g8ku7frnp31h4jc?partnerid=gplp0e…
Hi everyone,
We have registered a session for cross-distribution collaboration
issues. Right new it has been preliminary scheduled for Wed 30th
12.10pm. There should also be google hangout for remote attendance.
http://lcu-13.zerista.com/event/member/85125
I suggested a couple of items for Agenda:
- Review status of various distributions ARMv7 and ARMv8 support
- State of Single zImage kernel for distributions
- Discuss boot environment standardization (U-Boot/UEFI/GRUB best
practices, dtb file install locations)
- Getting remaining OSS software ported to ARMv8
- Identifying common pain points Linaro could solve
Anything else you might want to standardize on ARM linux? Feel free to
reply here and I'll add it to the list of things to talk about :)
Riku
Hi Thorsten,
The 'lstat' issue is fixed now and with this fix, only 3 tests fail on mksh
all of which are ignored as below.
......
pass ./check.t:history-subst-4
pass ./check.t:history-subst-5
FAIL ./check.t:history-ed-1 (ignored)
Description:
Basic (ed) editing works (assumes you have generic ed editor
that prints no prompts). This is for newish ed(1) and
stderr.
unexpected exit status 32512 (exit-code 127), expected 0
unexpected stdout - got too little output
wanted:
abc def
FOOBAR def
got:
abc def
unexpected stderr - wanted pattern:
/^X*13\n16\necho FOOBAR def\nX*$/
got:
XX/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
/bin/ed: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[3]: s/abc/FOOBAR/: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[4]: w: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[5]: q: not found
X
[incomplete last line]
FAIL ./check.t:history-ed-2 (ignored)
Description:
Correct command is edited when number given
unexpected exit status 32512 (exit-code 127), expected 0
unexpected stdout - got too little output
wanted:
line 1
line 2 is here
line 3
line 4
line 2 is changed
got:
line 1
line 2 is here
line 3
line 4
unexpected stderr - wanted pattern:
/^X*20\n23\necho line 2 is changed\nX*$/
got:
XXXXX/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
/bin/ed: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[6]: s/is: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[7]: w: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[8]: q: not found
X
[incomplete last line]
FAIL ./check.t:history-ed-3 (ignored)
Description:
Newly created multi line commands show up as single command
in history.
unexpected stdout - first difference: line 2, char 1 (wanted 'F',
got 'a'
wanted:
abc def
FOOBAR def
a new line
1 echo abc def
2 echo FOOBAR def
3 echo a new line
got:
abc def
a new line
1 echo abc def
2 fc echo
3 s/abc/FOOBAR/
4 $a
5 echo a new line
6 .
7 w
8 q
unexpected stderr - wanted pattern:
/^X*13\n32\necho FOOBAR def\necho a new line\nX*$/
got:
XX/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
/bin/ed: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[3]: s/abc/FOOBAR/: not found
XXX/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[6]: .: missing argument
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[7]: w: not found
X/home/root/anilss/pkgs/klibc/native_arm64/mksh/mksh:
<stdin>[8]: q: not found
XX
[incomplete last line]
pass ./check.t:IFS-space-1
. . .
pass ./check.t:debian-117-4
pass ./check.t:case-zsh
pass ./check.t:case-braces
pass ./check.t:command-shift
pass ./check.t:duffs-device
Total failed: 3 (3 ignored)
Total passed: 433
Thanks and Regards,
Anil
On 10 October 2013 01:45, Thorsten Glaser <tg(a)mirbsd.de> wrote:
> Neil Williams dixit:
>
> >The only failure which did not have an (ignored) tag was:
> >
> >FAIL ./check.t:glob-bad-2
>
> Hrm okay. This may indicate that lstat(2) is broken, or it
> may just be a problem with the test environment (this test
> is disabled on some architectures as it relies on a dangling
> symlink to be tested for being not dereferenced).
>
> What does lstat("foo") report for 'ln -s nonexistent foo'?
>
> bye,
> //mirabilos
> --
> "Using Lynx is like wearing a really good pair of shades: cuts out
> the glare and harmful UV (ultra-vanity), and you feel so-o-o COOL."
> -- Henry Nelson, March 1999
>
Hi,
I am trying to port klibc to aarch64. My code is available from:
git clone git://git.linaro.org/people/anil.singhar/klibc-aarch64.git
At this point, I am trying to fix the following issues. Any help / comment
/ advice / suggestion is highly appreciated.
1. Need to find the correct value for *KLIBCSHAREDFLAGS *(What value should
I set *Ttext* to in the aarch64 specific MCONFIG file?). Right now the
MCONFIG looks as follows:
# -*- makefile -*-
#
# arch/aarch64/MCONFIG
#
# Special rules for this architecture. Note that this is actually
# included from the main Makefile, and that pathnames should be
# accordingly.
#
CPU_ARCH ?= armv8-a
CPU_TUNE ?= generic
KLIBCOPTFLAGS += -Os -march=$(CPU_ARCH) -mtune=$(CPU_TUNE)
KLIBCBITSIZE = 64
KLIBCREQFLAGS += -fno-exceptions
#KLIBCSTRIPFLAGS += -R .ARM.exidx
# Extra linkflags when building the shared version of the library
# This address needs to be reachable using normal inter-module
# calls, and work on the memory models for this architecture
*#KLIBCSHAREDFLAGS = -Ttext 0x01800200* *<-- Is this value correct..?*
#KLIBCREQFLAGS +=
#KLIBCOPTFLAGS += -mgeneral-regs-only
2. The *stat* family of syscalls don't work correctly. There is only one
actual syscall: fstat, which is used by lstat and stat. The syscall doesn't
seem to return valid values for target files. e.g. The following fields are
wrong:
toot@genericarmv8:~/anilss/AArch64/klibc-aarch64/usr/klibc/tests# ./stat
test.out
Path = test.out
st_dev = 0x11 (0,17)
st_ino = 5910539
st_mode = 0
st_nlink = 4295000484 <-- This is wrong
st_uid = 0
st_gid = 0
st_rdev = 0x0 (0,0)
st_size = 15
st_blksize = 1380537164
st_blocks = 223008806
st_atim = 1048576.000000008
st.mtim = 1380612975.029926968
st.ctim = 1380537164.223008806
Because the fields are wrong, the parsed values are also wrong.
Applications such as ls, gzip etc. fail to work because they rely on this
syscall.
Since I am doing the development on ARMv8 Foundation model using linaro
openembedded image, is there a debug version of the kernel (the one *
img-foundation.axf*) that I can use to debug the syscall itself in kernel
mode using kgdb? Any other debugging ideas..?
Thanks and Regards,
Anil
Hi:
I am trying to prepare a cross compilation environment for porting some
packages to aarch64. My final objective is:
(i) To be able to build a given package (such as klibc) on x86_64 Ubuntu
machine and
(ii) To be able to build the same package without any changes natively on
ARMv8 Foundation model
(iii) To be able to run the package on ARMv8 foundation model.
In this context, I am contemplating the following steps:
(a) Cross compile "Linux genericarmv8 3.10.1.0-1-linaro-vexpress64", which
is used on the foundation model, on x86_64 machine.
to avoid any in-compatibilty.
(b) Cross compile the package (e.g. klibc)
At this point, I am trying to do (a), i.e. cross compile "Linux
genericarmv8 3.10.1.0-1-linaro-vexpress64". I followed the steps @
http://releases.linaro.org/13.07/openembedded/aarch64/
under the section: "Building from Source"
I run into the following error:
------------------------------------------
anilss@anilss:~/linaro/openembedded$ bash jenkins-setup/init-and-build.sh
GCC version: 4.8
Target architecture: armv8
object e76efdd7b342577c40aa271fa5ded9d66a783a9b
type commit
tag v1.12.4
tagger Conley Owens <cco3(a)android.com> 1380645867 -0700
repo 1.12.4
gpg: Signature made Tuesday 01 October 2013 10:14:27 PM IST using RSA key
ID 692B382C
gpg: Can't check signature: public key not found
error: could not verify the tag 'v1.12.4'
fatal: repo init failed; run without --quiet to see why
error: command 'sync' requires repo to be installed first.
Use "repo init" to install it here.
real 0m0.034s
user 0m0.032s
sys 0m0.000s
jenkins-setup/init-and-build.sh: line 50: cd: poky: No such file or
directory
jenkins-setup/init-and-build.sh: line 53: oe-init-build-env: No such file
or directory
jenkins-setup/functions.sh: line 70: conf/bblayers.conf: No such file or
directory
/home/anilss/linaro/openembedded/../openembedded-core/meta: No such file or
directory
jenkins-setup/functions.sh: line 84: conf/bblayers.conf: No such file or
directory
jenkins-setup/functions.sh: line 92: conf/site.conf: No such file or
directory
jenkins-setup/functions.sh: line 147: conf/site.conf: No such file or
directory
sed: can't read conf/local.conf: No such file or directory
plenty of space, no cleanup
jenkins-setup/init-and-build.sh: line 62: bitbake: command not found
anilss@anilss:~/linaro/openembedded$
---------------------------------------------------------------------------------------------------------------------------------
Is there anything I am missing that is not mentioned in those steps..?
Greatly appreciate any help.
Thanks and Regards,
Anil
On Wed, Aug 14, 2013 at 10:44:22AM -0600, Stephen Warren wrote:
> On 08/14/2013 09:13 AM, Tom Rini wrote:
> > Hey all,
> >
> > Do we have a document yet talking about the best practices for how we
> > would like a hardware vendor to ship, store and possibly update a device
> > tree, on the hardware? "However they like" seems likely to invite
> > problems down the line with everyone trying their own thing. Thanks!
>
> I don't believe there's any written guidance, no.
>
> The initial guidance Grant gave (IIRC at the first Linaro Connect last
> year, or perhaps the ARM workshop in Prague, or perhaps also in various
> ARM kernel list threads?) was that the DTBs should be stored/accessed in
> exactly the same way as the kernel, which on many systems implies it's a
> file in /boot (although MTD partitions, ... are also possible kernel
> locations). The idea here was to explicitly make upgrading the DTB as
> easy as upgrading the kernel, and explicitly without having to upgrade
> any firmware, since that's a more dangerous process in most cases.
>
> Now perhaps that advice was only intended to apply very early on when DT
> was really new on ARM, and has "aged out" by now? If so, I don't recall
> that every being explicitly mentioned or communicated later.
[snip out a bit more of Stephen's answer]
Yes, this notion certainly is the opposite of what was suggested on the
cross-distro list, both as part of a "what should a bootloader provide
to get commodity distros to support the board" thread and the "where
should a device tree live in the filesystem" thread. Cc'ing them now
because this is one of those things that feels like it needs solving,
solving soon, and done in a way the least number of folks get surprised
about it.
--
Tom