I've added a pico-SAM9G45 board to my home office setup. It's called
libra1 and runs Debian 6.0. The nice thing about this board is it has
256 MB of RAM and should be able to run SPEC 2000.
I'll start using it to check that our GCC changes don't cause
significant performance regressions on earlier architectures. Dave,
you could use it to test the 64 bit primitives if you want.
There's more information on the configuration at:
http://bazaar.launchpad.net/~michaelh1/+junk/hardware/view/head:/libra/r1/R…
-- Michael
Hello,
I tried to build the gcc-linaro cross compiler tool on the x86_64
ubuntu-10.04 machine.
The build and host machine is the x86_64 ubuntu-10.04, the target
is arm-eabi.
But failed and got the following error messages:
-----
checking host system type... arm-unknown-eabi
checking for arm-eabi-ar... arm-eabi-ar
checking for arm-eabi-lipo... arm-eabi-lipo
checking for arm-eabi-nm... /home/minslin/ET0001A/build-gcc/./gcc/nm
checking for arm-eabi-ranlib... arm-eabi-ranlib
checking for arm-eabi-strip... arm-eabi-strip
checking whether ln -s works... yes
checking for arm-eabi-gcc... /home/minslin/ET0001A/build-gcc/./gcc/xgcc
-B/home/minslin/ET0001A/build-gcc/./gcc/
-B/home/minslin/linaro-gcc/arm-eabi/bin/
-B/home/minslin/linaro-gcc/arm-eabi/lib/ -isystem
/home/minslin/linaro-gcc/arm-eabi/include -isystem
/home/minslin/linaro-gcc/arm-eabi/sys-include
checking for suffix of object files... configure: error: in
`/home/minslin/ET0001A/build-gcc/arm-eabi/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[1]: *** [configure-target-libgcc] Error 1
make[1]: Leaving directory `/home/minslin/ET0001A/build-gcc'
make: *** [all] Error 2
-----
The configure options I used were:
-----
../gcc-linaro-4.5-2011.06-0/configure --target=arm-eabi
--enable-languages=c,c++ --enable-shared --prefix=/home/minslin/linaro-gcc
--with-gmp=/home/minslin/gmp --with-mpfr=/home/minslin/mpfr
--with-mpc=/home/minslin/mpc
-----
I downloaded and built the GMP, MPFR and MPC packages. The
versions I used are:
gmp-5.0.2
mpfr-3.0.1
mpc-0.8.2
Please help me solving this problem.
Thanks.
Best regards,
------------------------------------------------------------
Min-Shong Lin (林敏雄)
Engineering Division
Global UniChip Corp. (創意電子)
EMAIL : mins.lin(a)globalunichip.com
TEL : +886-3-5646600 ext. 6937
--------------------------------- Email Confidentiality Notice
------------------------------------------
If you are not the intended recipient for this CONFIDENTIAL E-mail, please
delete it immediately without keeping or distributing any copy and notify
the sender.
----------------------------------------------------------------------------------------------------------------------
== Atomics ==
* Testing the libgcc fallback code with Nicholas's kernel patch -
and then fixing my initialisation code to use init_array's (thanks
Richard for the hint)
* Tidying stuff up after a review of my patch by Richard - the
sync.md is now smaller than the original before I started.
* Discussing sync semantics with Michael Edwards - he's spotted that
the gcc ARM sync routines need to move their final memory barrier
for the compare-exchange case where the compare fails.
* Looking at valgrind; it looks like it should be OK with the
commpage changes; but it doesn't currently support ldrexd and strexd;
there is a
patch for it to do ARM mode but not thumb yet.
Dave
== This week ==
* Catching up on email.
* More experiementation with the auto inc/dec stuff. TBH, this has taken
longer than expected, but I think it's close now.
* Wrote a dejagnu testcase for PR 49196. Tested it on trunk and submitted
it upstream.
== Next week ==
* Backport fix for PR 49196.
* Look at NEON reload failure.
* More auto inc/dec.
Richard
RAG:
Red:
Amber:
Green:
Current Milestones:
|| || Planned || Estimate || Actual ||
||qemu-linaro-2011-07 || 2011-07-21 || 2011-07-21 || ||
Historical Milestones:
||finish qemu-cont-integn || 2011-01-25 || 2011-01-25 || handed off ||
||first qemu-linaro release || 2011-02-08 || 2011-02-08 || 2011-02-08 ||
||qemu-linaro 2011-03 || 2011-03-08 || 2011-03-08 || 2011-03-08 ||
||qemu-linaro 2011-04 || 2011-04-21 || 2011-04-21 || 2011-04-21 ||
||qemu-linaro 2011-05 || 2011-05-19 || 2011-05-19 || n/a ||
||close out 1105 blueprints || 2011-05-28 || 2011-05-28 || 2011-05-19 ||
||complete 1111 planning || 2011-05-28 || 2011-05-28 || 2011-05-27 ||
||qemu-linaro-2011-06 || 2011-06-16 || 2011-06-16 || 2011-06-16 ||
== other ==
* wrote a number of patches fixing issues identified by exhaustive
testing of the ARM decoder. Still some parts of the Thumb decoder
to deal with.
* discussion about 1176 (somebody has some patches to add support for
it) and what set of feature switches are needed to support this and
the 1136r1 (they have most but not all of the v6K feature set)
* sent some patches which deal with the "VLDM/VSTM generate too many
TCG ops" bug by raising the limit on number of TCG ops
* sent a pull request for some ARM patches that had been languishing
on the mailing list
* tracked down a regression making vexpress crash when run on upstream
QEMU to a recent Xen-related patch
* working on AFDS (annual review) paperwork
Meetings: toolchain, standup
Lots of interrupts/bugfixing/review recently means I'm drifting slightly
behind schedule on blueprints. Need to refocus on those next week.
Current qemu patch status is tracked here:
https://wiki.linaro.org/PeterMaydell/QemuPatchStatus
Absences:
1-5 August: Linaro sprint 1111
(maybe) 15-16 August: QEMU/KVM strand at LinuxCon NA, Vancouver
[LinuxCon proper follows on 17-19th]
== GDB ==
* Completed setup and baseline run for remote gdb testsuite.
This involved tracking down and working around a variety
of problems including:
- issues with the cross-compiler packages
- board files and sysroot for the debugger to use
- timing problems in the dejagnu harness
- multiple problems in the GDB testsuite itself
At this point, I'm down to about a dozen extra FAILs and
about 2000 tests (out of 16000) tests that are not executed
in the remote testsuite for one reason or the other. Next
step will be to analyze those and create bug reports.
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E.
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294
Hi,
- investigating detection of general over-widening cases in the vectorizer
- improvements of widen-mult - proposed for merge to gcc-linaro-4.6
- fixed PRs 49443 and 49478
Ira
Hi,
* in order to have the android's debuggerd use libunwind I looked at
libunwind's remote interface and especially the libunwind-ptrace lib
that sits on top of that.
* the remote interface seems a bit awkward to me. The user provides
a set of callbacks to access the inferior memory or registers. Instead
of using these callbacks to obtain the actual unwind information
(eh_frame fro example) it requires the user implement another callback
(find_proc_info) to lookup the unwind info himself.
* the libunwind-ptrace currently deos not support the ARM specific
unwind tables
* started to look into how to improve the situation
* not straight forward as it's tightly bound to eh_frame unw info
and libunwinds DWARF parsing mechanism
* attending a class this afternoon
* Note: I'm on vacation starting in a few hours and I'll be back on
Tuesday next week.
Regards
Ken
== Progress ==
* Backported A5 / A15 tuning to Linaro GCC. Waiting for test results.
* T2 perf. meeting.
* Backported the neon length patch back.
* Patch for PR49385 being tested.
* Bootstraps broken yet again / upstream maintenance / test regressions.
* Waiting on Branch_cost results .
* Minor binutils patches as a result of upstream maintenance.
== Plans ==
* Finish BRANCH_COST tuning
* Look at VFP moves for some more .
* Backport some of the upstream bug fixes that need to be done.
Meetings:
* 1-1s
* TCWG call.
* At Google unconference 17-19 June
Chaired the Toolchain Working group call. Michael H was unavailable (but
OK) following yet another earthquake in Christchurch.
Continued working on my widening multiplies patches. I did think for a
while there must be a logic flaw because it's using the wrong sized
inputs to instructions, but on closer inspection that was taken care of
in the RTL transformations. The changes I already had seem good in all
the test cases I could generate. I've also identified a number of
additional optimization opportunities, so I've been tweaking the patch
for those.
Continued trying to figure out why my Thumb2 constants patches break the
native bootstrap build. The stage2 compiler enters an infinite loop, but
I couldn't easily identify why, as yet.
Backported Julian's unaligned access patches to a Linaro test branch.
----
Upstream patched requiring review:
* NEON scheduling patch
http://gcc.gnu.org/ml/gcc-patches/2011-02/msg01431.html
== This week ==
* Experimented more with A8 and A9 tuning for auto inc/dec addresses.
* More work on the auto inc/dec pass itself.
* Compared the assembly output in the GCC testsuite for a range
of targets (avr, bfin, h8300, ia64, m32c, m32r, m68k, am33,
pa, pdp11, powerpc, rx, score, sh, xstormy16 and vax).
* Looked at a few bug reports. Will submit patches when I get back.
== Next week ==
* Holiday!
Richard
== 64 bit Atomics ==
* Wrote more test cases; now have a nice 3 thread test that passes -
and more importantly, it fails if I replace one of the atomic ops
by a non-atomic equivalent.
* Modified existing atomic helper code in libgcc to do 64bit
* Added init function to 64bit atomic helper to detect presence of
new kernel and fail if an old one is present.
That last one is a bit of a pain; it now correctly exits on existing
kernels and aborts; qemu user space seg faults
because access to the kernel helper version address is uncaught. So
first thing I need to do is try the early kernel patch Nicolas
sent around, and then I really need to see if qemu can be firmly
persuaded to run it.
== String routines ==
* Ran denbench with sets of strlen; started running some spec as well.
== QEmu ==
* Tested Peter's prelease tarball in user space and a bunch of
system emulations
- successfully managed to say hello to #linaro from an emulated
overo board using USB keyboard.
== Other ==
* Booked 4th July week off.
Dave
Hi,
* short week (Monday -> public holiday, Wednesday -> attended a class)
* tested the gcc-linaro-4.5-2011.06 with linaro-android on my panda
* works! no noticeable differences to 4.5-2011.05 for me
* libgui.so apriori prelink issue remains:
* realized that apriori works quite different from GNU prelink
* checked the prelink map against LOAD segment size - looks good
* build with -DLINKER_DEBUG=1 - still doesn't give hints
* give up for know and moving on
* made a patchset to be able to build whole android with -DDEBUG
* except of v8 and webkit
* zygote segfaults for unknown reason
* understood the basics of the current backtracing mechanism on android
* the bionic linker registers signal handlers on SIGSEGV that opens
a socket
* the debuggerd listens on that socket and gets its regs etc. using
ptrace
* Note: I'll be on vacation starting on Thursday next week
Regards
Ken
== GDB ==
* Committed support for NEON registers in core dumps (bug #615972)
to mainline GDB and binutils repositories.
* Added support to readelf (mainline binutils) to correctly display
NEON register core file notes.
* Started looking into remote gdb testsuite.
== GCC ==
* Investigated reload failure when building kernel with Linaro GCC 4.5
(discovered by Arnd).
* Investigated stray function references due to partial inlining
breaking kernel build with Linaro GCC 4.6 (discovered by Arnd).
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E.
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294
Hi Michael,
This thread about how to generate ancillary sections using gas has
resurfaced again. Do you know who might be available from the
toolchain group to take a look at this?
It appears that this issue can best be solved by a change to gas
(or, possibly, to gcc).
Cheers
---Dave
References:
Dynamic patching in discarded sections
<http://thread.gmane.org/gmane.linux.kernel/1152142>
Generating ancilliary sections with gas
<http://thread.gmane.org/gmane.linux.linaro.toolchain/686>
There is a ftbfs on armel bug for postler:
https://bugs.launchpad.net/ubuntu/+source/postler/+bug/791319
Attached test compiles fine on amd64 but fails on armel:
20:16 hrw@malenstwo:postler-0.1.1$ gcc _build_/.conf_check_0/test.c
_build_/.conf_check_0/test.c: In function ‘main’:
_build_/.conf_check_0/test.c:5:1: error: incompatible type for argument
3 of ‘vasprintf’
/usr/include/stdio.h:396:12: note: expected ‘__gnuc_va_list’ but
argument is of type ‘char *’
Can someone explain me why this happens?
Ubuntu armel and armhf cross compilers, CSL 2011.03-42 have same
problem.
Hi
Yesterday I looked at bug [1] in chromium-browser but checked oneiric
version: 12.0.742.91~r87961. It failed on linking to CUPS libraries so I
looked at upstream repository and found fix [2]. With patch applied it
failed on same place:
LINK(target) out/Release/chrome
[keep-alive] czw, 16 cze 2011, 18:21:39 CEST (441 min)
/usr/bin/ld.bfd.real:
out/Release/obj.target/third_party/cacheinvalidation/../../cacheinvalidation_proto_cpp/gen/protoc_out/google/cacheinvalidation/internal.pb.o(.text._ZN12invalidation21ClientToServerMessage27MergePartialFromCodedStreamEPN6google8protobuf2io16CodedInputStreamE+0x7d2): unresolvable R_ARM_THM_CALL relocation against symbol `operator new(unsigned int)@@GLIBCXX_3.4'
/usr/bin/ld.bfd.real: final link failed: Nonrepresentable section on
output
collect2: ld returned 1 exit status
make[1]: *** [out/Release/chrome] Error 1
make[1]: Leaving directory
`/home/hrw/devel/porting-jam/chromium-browser-12.0.742.91~r87961/build-tree/src'
make: *** [debian/stamp-makefile-build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
According to bugs [3][4] package may work when built without -fPIE but
(as Loic wrote in [3]) "-fPIE is needed for some security features and
web browsers are a critical piece of software that we want to protect".
May someone take a look at this issue?
One warning: this fail happens after 440 minutes of build on PandaBoard
with usb hdd (took 1.8GB of space). If needed I can provide account on
my panda with access to build directory (but this rather tomorrow then
today) - IPv6 address only.
1.
https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/791283
2.
http://git.chromium.org/gitweb/?p=chromium/chromium.git;a=patch;h=c2b99f3fe…
3. https://bugs.launchpad.net/binutils-linaro/+bug/641126
4. http://code.google.com/p/chromium/issues/detail?id=55439
Hi,
- fix vectorizer testsuite failures on ARM - committed
- committed a fix of a bug in the vectorizer revealed by the widen-mult patch
- committed an improvement of peeling heuristic
- reduce over-widening in case of multiplication by a constant
(improves vectorized rgbyiq by almost 2x) - committed
- started backporting to gcc-linaro-4.6
Ira
The Linaro Toolchain Working Group is pleased to announce the release
of Linaro QEMU 2011.06.
Linaro QEMU 2011.06 is the latest monthly release of qemu-linaro.
Based off upstream (trunk) QEMU, it includes a number of ARM-focused
bug fixes and enhancements.
This release introduces two new features; these are still experimental
so please report any issues:
- A model of the Gumstix Overo board; this is an OMAP3 based system
similar to Beagle but with the advantage of having supported
onboard ethernet.
- USB keyboard and mouse support, if your kernel includes support for
the OMAP3 OHCI controller (not just EHCI). Try adding
"-device usb-kbd -device usb-mouse" to your QEMU command line for
Beagle or Overo models.
Other interesting changes include:
- A fix for the lack of graphics output on the Beagle model when
running the Linaro 11.05 final release image
- Suppression of the "Bad register 0x000000f8" warnings provoked by
the Linaro 11.05 final release kernels
- As usual, various minor correctness fixes and other upstream changes
Known issues:
- The beagle and beaglexm models still do not support USB networking
- There are some gcc 4.6 warnings about "variable set but not used"
which have not yet been resolved; Ubuntu Oneiric's gcc makes these
non-fatal, but if you're building with an upstream gcc 4.6 you may
need to add the "--disable-werror" option to configure
The source tarball is available at:
https://launchpad.net/qemu-linaro/+milestone/2011.06
Binary builds of this qemu-linaro release are being prepared and
will be available shortly for users of Ubuntu. Packages will be in
the linaro-maintainers tools ppa:
https://launchpad.net/~linaro-maintainers/+archive/tools/
More information on Linaro QEMU is available at:
https://launchpad.net/qemu-linaro
The Linaro Toolchain Working Group is pleased to announce the release
of both Linaro GCC 4.6 and Linaro GCC 4.5.
Linaro GCC 4.6 is the fourth release in the 4.6 series. Based off the
latest GCC 4.6.0+svn174261, it adds new optimisations and vectoriser
improvements.
Interesting changes include:
* Updates to 4.6.0+r174261
* Blocks can now vectorise into ORN and BIC instructions
* Support for half word to double word multiply and accumulate operations
* Better support for other widening multiply operations
* Further performance improvements in NEON strided loads and stores
* Performance improvements targeted at EEMBC CoreMark
Fixes:
* PR target/48454: Set the lengths correctly for the case with Quad vectors.
Known issues:
* Building Python 2.7 with -mfpu=neon exposes a bug in vmov.i64 in
binutils 2.20.51. Please use 2.21 or later.
The strided load/store improvements allow the vectoriser to
efficiently access values that occur at every n'th address, such as
all of the red values in a RGB image or all of the left channel
samples in a interleaved audio array. For example, a plain C function
that converts between RGB and CYMK now runs 7.3 x faster on an A9.
Linaro GCC 4.5 2011.06 is the eleventh release in the 4.5 series.
Based off the latest GCC 4.5.3+svn174250, it is a maintenance focused
release.
Interesting changes in 4.5 include:
* Updates to 4.5.3+r174250
Fixes:
* LP: #744754: ICE in reload_cse_simplify_operands, at
postreload.c:402 with neon optimized code
* LP: #748138: ICE in redirect_jump, at jump.c:1443
The source tarball is available from:
https://launchpad.net/gcc-linaro/+milestone/4.6-2011.06-0https://launchpad.net/gcc-linaro/+milestone/4.5-2011.06-0
Downloads are available from the Linaro GCC page on Launchpad:
https://launchpad.net/gcc-linaro
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Bugs: https://bugs.launchpad.net/gcc-linaro/
Questions? https://ask.linaro.org/
Interested in commercial support? inquire at support(a)linaro.org
-- Michael
Hi there,
I tried to use android-toolchain-eabi-4.5-2011.05-0-linux-x86.tar.bz2
to enable hard float ABI.
But it built failed on Android 2.3.3. Most errors are like address
alignment issues.
Did you have any patch for that? Successfully tested?
Thanks
Richard
My testing for the widening multiplies patches came back clean. I've
committed it upstream, and merged it to Linaro GCC 4.6.
The testing for my Thumb2 constants patches failed (bootstrap failure on
ARM), so can't commit that right away. The failure is a SIGSEGV in the
stage 2 compiler building it's own libgcc. This is going to be tricky to
pin down!
Continued work on widening operations in the GCC middle-end. I now have
it doing all the arbitrary width widening operations that I want. I've
tested that it didn't do the wrong thing for just about all permutations
of input and output types, but I've yet to do anything like a bootstrap
test or anything. There's still quite a lot more work to do in tidying
it up.
----
Upstream patched requiring review:
* NEON scheduling patch
http://gcc.gnu.org/ml/gcc-patches/2011-02/msg01431.html