Set-up Buildbot for GDC

Iain Buclaw via D.gnu d.gnu at puremagic.com
Thu Jul 6 17:05:16 PDT 2017


On 7 July 2017 at 01:37, Johannes Pfau via D.gnu <d.gnu at puremagic.com> wrote:
> Am Fri, 7 Jul 2017 01:12:03 +0200
> schrieb "Iain Buclaw via D.gnu" <d.gnu at puremagic.com>:
>
>> On 7 July 2017 at 00:57, Johannes Pfau via D.gnu
>> <d.gnu at puremagic.com> wrote:
>> > Am Fri, 7 Jul 2017 00:52:20 +0200
>> > schrieb Johannes Pfau <nospam at example.com>:
>> >
>> >> Am Thu, 6 Jul 2017 10:06:45 +0200
>> >> schrieb "Iain Buclaw via D.gnu" <d.gnu at puremagic.com>:
>> >>
>> >> >
>> >> > I've turned on gridview, and it looks like something close to
>> >> > what you are asking I think.
>> >> >
>> >> > https://buildbot.dgnu.org/#/grid?branch=master
>> >> >
>> >>
>> >> Looks great!
>> >>
>> >> BTW: Any idea why buildbot built only 7 builds this time? The armhf
>> >> failure looks also interesting, I'm just checking whether I can
>> >> reproduce this locally.
>> >>
>> >
>> > OK, can reproduce. I think it's this in the configure log:
>> >
>> > configure:7064:  /buildbot/GDC/build/./gcc/xgcc
>> > -B/buildbot/GDC/build/./gcc/ -B/usr/arm-linux-gnueabihf/bin/
>> > -B/usr/arm-linux-gnueabihf/lib/
>> > -isystem /usr/arm-linux-gnueabihf/include
>> > -isystem /usr/arm-linux-gnueabihf/sys-include    -o conftest -g -O2
>> > conftest.c conftstm.o >&5 /usr/arm-linux-gnueabihf/bin/ld: error:
>> > conftest uses VFP register
>> > arguments, /buildbot/GDC/build/./gcc/crtbegin.o does
>> > not /usr/arm-linux-gnueabihf/bin/ld: failed to merge target specific
>> > data of
>> > file /buildbot/GDC/build/./gcc/crtbegin.o /usr/arm-linux-gnueabihf/bin/ld:
>> > error: conftest uses VFP register arguments, /tmp/cczQi3ST.o does
>> > not /usr/arm-linux-gnueabihf/bin/ld: failed to merge target specific
>> > data of file /tmp/cczQi3ST.o /usr/arm-linux-gnueabihf/bin/ld: error:
>> > conftest uses VFP register arguments, conftstm.o does
>> > not /usr/arm-linux-gnueabihf/bin/ld: failed to merge target specific
>> > data of file conftstm.o /usr/arm-linux-gnueabihf/bin/ld: error:
>> > conftest uses VFP register
>> > arguments, /buildbot/GDC/build/./gcc/crtend.o does
>> > not /usr/arm-linux-gnueabihf/bin/ld: failed to merge target specific
>> > data of file /buildbot/GDC/build/./gcc/crtend.o collect2: error: ld
>> > returned 1 exit status
>> >
>> >
>> > Looks like the GCC configuration does not match the ubuntu
>> > arm-linux-gnueabihf-gcc specification exactly.
>> >
>> >
>>
>> Could it be missing --with-float= or --with-fpu configure flag
>> perhaps?  I'm just finishing up a few changes to the build scripts
>> that turn off building phobos.  Can add another check for extra
>> configure flags to be set per-target.
>>
>> Iain.
>
> Yes, it's likely one of these. I can't test this right now, but the
> simplest way is running the ubuntu arm-linux-gnueabihf-gcc -v and copy
> the configuration. We should generally use exactly the same
> configuration as ubuntu to get reliable results (Otherwise the
> binutils/libc we use from the distribution might be not compatible
> with the compiler/libgcc/libstdc++,... libraries we build).
>
> I guess explore.dgnu.org uses the same configuration and it uses:
>
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
> 6.3.0-16ubuntu6' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs
> --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++
> --prefix=/usr --program-suffix=-6 --enable-shared
> --enable-linker-build-id --libexecdir=/usr/lib
> --without-included-gettext --enable-threads=posix --libdir=/usr/lib
> --enable-nls --with-sysroot=/ --enable-clocale=gnu
> --enable-libstdcxx-debug --enable-libstdcxx-time=yes
> --with-default-libstdcxx-abi=new --enable-gnu-unique-object
> --disable-libitm --disable-libquadmath --enable-plugin
> --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
> --enable-gtk-cairo
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf-cross/jre
> --enable-java-home
> --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf-cross
> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf-cross
> --with-arch-directory=arm
> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj
> --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch
> --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a
> --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb
> --disable-werror --enable-multilib --enable-checking=release
> --build=x86_64-linux-gnu --host=x86_64-linux-gnu
> --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf-
> --includedir=/usr/arm-linux-gnueabihf/include
>
>

Yeah, however 90% of that is unused by us.  I've added a
BUILD_CONFIGURE_FLAGS var to the buildci.sh script.

https://github.com/D-Programming-GDC/buildbot-gdc/commit/47f8c7267682f19b3e1ce2afa49034217413451a#diff-711e8a244e68a7a465f29a18e33a22c3R34

Can add a case for armhf and set --with-fpu= later and see if that
gets us further.

Iain.


More information about the D.gnu mailing list