From: Sergio Durigan Junior <sergiodj@redhat.com>
To: Yao Qi <qiyaoltc@gmail.com>
Cc: "gdb-patches\@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [buildbot] Customized build and board file
Date: Thu, 13 Oct 2016 19:21:00 -0000 [thread overview]
Message-ID: <871szk5a2s.fsf@redhat.com> (raw)
In-Reply-To: <CAH=s-PN6qigxOaGXuGZ0r_cPGxB=aOUMgnyiQTrmiNdE4QnLWw@mail.gmail.com> (Yao Qi's message of "Fri, 7 Oct 2016 15:17:15 +0100")
On Friday, October 07 2016, Yao Qi wrote:
> On Thu, Oct 6, 2016 at 10:08 PM, Sergio Durigan Junior
> <sergiodj@redhat.com> wrote:
>>
>> Yes, it is possible to provide specific parameters to a builder, so it
>> should be easy to do this. About the new board file, I understand that
>> it is just a workaround due to the limitations you mentioned below, and
>> as such it is not going to be put upstream, right? We'd also have to
>> provide a specific parameter to this builder if we want it to use this
>> board file.
>>
>
> Yes, if we have an armv7 box in gcc compile farm, we don't need that
> board file at all. The board file won't be upstream.
Sorry for the delay.
So, I'm trying to decide what is the best way to use the board file. It
needs to be placed in the gdb/testsuite/boards/ directory, right? But
the way BuildBot works is by making a full clone of the repository on
for every build. I *might* be able to upload the file to the ARM slave,
but that would require a hack that I'm trying to avoid.
>>> Note that this is trade-off among various limitations,
>>> - we don't have armv7 devices in gcc compile farm, so we have to emulate
>>> on an armv8 machine,
>>> - libc6:armhf is not installed on gcc114, so I build the toolchain, and force
>>> gdb and test programs use my sysroot. I am going to raise a request to
>>> install libc6:armhf, but it may take a while.
>>
>> It's been a while since I want to have an ARM buildslave on the
>> BuildBot, so even with these limitations I still think it's a nice thing
>> to have.
>>
>> Thanks for working on this. I'll have to write special code for this
>> buildslave, so let me know when you have everything ready.
>
> When you write code, please take another requirement into account,
> that is, I may set up another buildslave where GDB is built for
> aarch64, but test cases are compiled for arm. In this case, nothing
> special in configure option, but another board file is needed too.
OK, thanks for the heads up. The same comments I made above apply,
then.
> Here are my steps to build gdb and run tests on gcc114,
>
> TOOLCHAIN=/home/qiyao/gcc-7/arm-linux-gnueabihf
>
> cd build-arm
> ../binutils-gdb/configure --host=arm-linux-gnueabihf
> --target=arm-linux-gnueabihf
> CC="$TOOLCHAIN/bin/arm-linux-gnueabihf-gcc
> --sysroot=$TOOLCHAIN/sysroot"
> CXX="$TOOLCHAIN/bin/arm-linux-gnueabihf-g++
> --sysroot=$TOOLCHAIN/sysroot"
> LDFLAGS="-Wl,-dynamic-linker,$TOOLCHAIN/sysroot/lib/ld-linux-armhf.so.3
> -Wl,-rpath,$TOOLCHAIN/sysroot/lib
> -Wl,-rpath,$TOOLCHAIN/sysroot/usr/lib -Wl,-rpath,$TOOLCHAIN/lib"
> --disable-ld --disable-gold --disable-binutils --disable-gas
> --disable-gprof
> PATH=$TOOLCHAIN/bin:$PATH make -j32
> cd gdb
> PATH=/home/qiyao/gcc-7/arm-linux-gnueabihf/bin:$PATH make check
> RUNTESTFLAGS='--target_board=unix-aarch32'
OK, I'll work on getting this set up. It'll take a bit of time to test
it, but I'll let you know.
> and unix-aarch32.exp is:
> ---------------------
> unset_board_info isremote
> set_board_info isremote 0
>
> load_generic_config "unix"
>
> process_multilib_options ""
>
> set toolchain_base "/home/qiyao/gcc-7/arm-linux-gnueabihf"
>
> set_board_info compiler "${toolchain_base}/bin/arm-linux-gnueabihf-gcc
> --sysroot=${toolchain_base}/sysroot"
> set_board_info c++compiler
> "${toolchain_base}/bin/arm-linux-gnueabihf-g++
> --sysroot=${toolchain_base}/sysroot"
> set_board_info f77compiler
> "${toolchain_base}/bin/arm-linux-gnueabihf-gfortran
> --sysroot=${toolchain_base}/sysroot"
> set_board_info f90compiler
> "${toolchain_base}/bin/arm-linux-gnueabihf-gfortran
> --sysroot=${toolchain_base}/sysroot"
>
> set_board_info ldflags
> "-Wl,-dynamic-linker,${toolchain_base}/sysroot/lib/ld-linux-armhf.so.3
> -Wl,-rpath,${toolchain_base}/sysroot/usr/lib/
> -Wl,-rpath,${toolchain_base}/sysroot/lib
> -Wl,-rpath,${toolchain_base}/lib"
>
> set_board_info gdb_init_commands [list "set libthread-db-search-path
> ${toolchain_base}/sysroot/lib" "set auto-load safe-path /" "set
> sysroot /" ]
>
> proc gdb_load { arg } {
> global gdb_prompt
>
> foreach command [gdb_init_commands] {
> send_gdb "$command\n"
> gdb_expect 30 {
> -re "$gdb_prompt $" { }
> default {
> perror "gdb_init_command for target failed"
> return
> }
> }
> }
>
> if { $arg != "" } {
> return [gdb_file_cmd $arg]
> }
> return 0
> }
> ---------------------------
>
> There are 1138 test fails but I didn't triage them yet.
Thanks,
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
next prev parent reply other threads:[~2016-10-13 19:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-05 11:01 Yao Qi
2016-10-06 21:08 ` Sergio Durigan Junior
2016-10-07 14:17 ` Yao Qi
2016-10-13 19:21 ` Sergio Durigan Junior [this message]
2016-10-13 19:39 ` Pedro Alves
2016-10-13 19:54 ` Sergio Durigan Junior
2016-10-14 13:33 ` Yao Qi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871szk5a2s.fsf@redhat.com \
--to=sergiodj@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=qiyaoltc@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox