#3019 assigned defect

Update RSB to use gcc-4.9.4 for rtems 4.11

Reported by: Jan Sommer Owned by: Chris Johns
Priority: normal Milestone: Indefinite
Component: tool/gcc Version: 4.11
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

To have a working Ada compiler on rtems several patches are needed which are part of the gcc-4.9.4 release.

Change History (11)

comment:1 Changed on 05/28/17 at 22:00:32 by Chris Johns

Owner: set to Chris Johns
Status: newassigned

This will be the 4.11.3 release which will follow the 4.11.2 release.

comment:2 Changed on 08/21/17 at 23:39:11 by Joel Sherrill

This sounds like a great idea!

comment:3 Changed on 08/22/17 at 03:01:41 by Chris Johns

ARM has this error so I am wondering what needs to change?

libtool: compile:  /opt/work/chris/rtems/rsb/rtems-source-builder.git/rtems/build/arm-rtems4.11-gcc-4.9.4-newlib-2.2.0.20150423-x86_64-freebsd11.1-1/build/./gcc/xgcc -B/opt/work/chris/rtems/rsb/rtems-source-builder.git/rtems/build/arm-rtems4.11-gcc-4.9.4-newlib-2.2.0.20150423-x86_64-freebsd11.1-1/build/./gcc/ -nostdinc -B/opt/work/chris/rtems/rsb/rtems-source-builder.git/rtems/build/arm-rtems4.11-gcc-4.9.4-newlib-2.2.0.20150423-x86_64-freebsd11.1-1/build/arm-rtems4.11/newlib/ -isystem /opt/work/chris/rtems/rsb/rtems-source-builder.git/rtems/build/arm-rtems4.11-gcc-4.9.4-newlib-2.2.0.20150423-x86_64-freebsd11.1-1/build/arm-rtems4.11/newlib/targ-include -isystem /opt/work/chris/rtems/rsb/rtems-source-builder.git/rtems/build/arm-rtems4.11-gcc-4.9.4-newlib-2.2.0.20150423-x86_64-freebsd11.1-1/gcc-4.9.4/newlib/libc/include -B/opt/work/rtems/4.11/arm-rtems4.11/bin/ -B/opt/work/rtems/4.11/arm-rtems4.11/lib/ -isystem /opt/work/rtems/4.11/arm-rtems4.11/include -isystem /opt/work/rtems/4.11/arm-rtems4.11/sys-include -DHAVE_CONFIG_H -I../../../gcc-4.9.4/libatomic/config/rtems -I../../../gcc-4.9.4/libatomic -I. -Wall -Werror -g -O2 -MT fand_1_.lo -MD -MP -MF .deps/fand_1_.lo.Ppo -DN=1 -c ../../../gcc-4.9.4/libatomic/fand_n.c -o fand_1_.o
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/gstore.c:25:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
compilation terminated.
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/gcas.c:25:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
compilation terminated.
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/gload.c:25:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
compilation terminated.
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/glfree.c:25:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
compilation terminated.
gmake[4]: *** [Makefile:454: gstore.lo] Error 1
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/gexch.c:25:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
gmake[4]: *** Waiting for unfinished jobs....
compilation terminated.
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/fenv.c:24:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
compilation terminated.
In file included from ../../../gcc-4.9.4/libatomic/libatomic_i.h:230:0,
                 from ../../../gcc-4.9.4/libatomic/config/rtems/lock.c:25:
../../../gcc-4.9.4/libatomic/config/rtems/host-config.h:27:32: fatal error: machine/_libatomic.h: No such file or directory
 #include <machine/_libatomic.h>
                                ^
compilation terminated.
gmake[4]: *** [Makefile:454: gcas.lo] Error 1

comment:4 Changed on 08/23/17 at 01:36:11 by Chris Johns

On gcc-4.9.3 the configure log is:

+ ../gcc-4.9.3/configure '--prefix=/opt/work/rtems/4.11' '--bindir=/opt/work/rtems/4.11/bin' '--exec_prefix=/opt/work/rtems/4.11' '--includedir=/opt/work/rtems/4.11/include' '--libdir=/opt/work/rtems/4.11/lib' '--libexecdir=/opt/work/rtems/4.11/libexec' '--mandir=/opt/work/rtems/4.11/share/man' '--infodir=/opt/work/rtems/4.11/share/info' '--datadir=/opt/work/rtems/4.11/share' '--build=x86_64-freebsd1
1.1' '--host=x86_64-freebsd11.1' '--target=arm-rtems4.11' --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --verbose --with-newlib --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-version-specific-runtime-libs --disable-lto --enable-newlib-io-c99-formats --enable-newlib-iconv '--enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,cp866,euc_jp,euc
_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,win_1253,win_1254,win_1255,win_1256,win_1257,win_1
258' --enable-threads --disable-plugin --enable-obsolete --enable-libgomp '--enable-languages=c,c++'
checking build system type... x86_64-pc-freebsd11.1
checking host system type... x86_64-pc-freebsd11.1
checking target system type... arm-unknown-rtems4.11
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking for libatomic support... no

and on:

+ ../gcc-4.9.4/configure '--prefix=/opt/work/rtems/4.11' '--bindir=/opt/work/rtems/4.11/bin' '--exec_prefix=/opt/work/rtems/4.11' '--includedir=/opt/work/rtems/4.11/include' '--libdir=/opt/work/rtems/4.11/lib' '--libexecdir=/opt/work/rtems/4.11/libexec' '--mandir=/opt/work/rtems/4.11/share/man' '--infodir=/opt/work/rtems/4.11/share/info' '--datadir=/opt/work/rtems/4.11/share' '--build=x86_64-freebsd1
1.1' '--host=x86_64-freebsd11.1' '--target=arm-rtems4.11' --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --verbose --with-newlib --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-version-specific-runtime-libs --disable-lto --enable-newlib-io-c99-formats --enable-newlib-iconv '--enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,cp866,euc_jp,euc
_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,win_1253,win_1254,win_1255,win_1256,win_1257,win_1
258' --enable-threads --disable-plugin --enable-obsolete --enable-libgomp '--enable-languages=c,c++'
checking build system type... x86_64-pc-freebsd11.1
checking host system type... x86_64-pc-freebsd11.1
checking target system type... arm-unknown-rtems4.11
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/local/bin/gsed
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking for libatomic support... yes

Why would GCC's functionality change on a dot release on a release branch to this degree?

comment:5 Changed on 08/23/17 at 01:57:55 by Chris Johns

We need to revert this patch in the RSB for us to use 4.9.4 on the 4.11 branch:

https://github.com/gcc-mirror/gcc/commit/624631dc0d52021122e9491a186ec4f0eed1ee6c

comment:6 Changed on 08/23/17 at 04:59:15 by Sebastian Huber

Alternatively, we can back port the libatomic support to RTEMS 4.11.3. See #2695.

comment:7 in reply to:  6 Changed on 08/23/17 at 05:06:59 by Chris Johns

Replying to Sebastian Huber:

Alternatively, we can back port the libatomic support to RTEMS 4.11.3. See #2695.

I do not have the time set aside to do this. Are you able to back port the changes?

You are happy the change is fine for a working release, it is a dot point release?

Chris

comment:8 Changed on 08/23/17 at 05:11:06 by Sebastian Huber

My focus is currently RTEMS 4.12. Maybe Jan Sommer can do this.

comment:9 Changed on 08/23/17 at 05:27:53 by Sebastian Huber

Milestone: 4.11.34.11.4

comment:10 Changed on 08/23/17 at 05:29:05 by Chris Johns

Jan?

comment:11 Changed on 02/23/18 at 02:34:40 by Chris Johns

Component: unspecifiedtool/gcc
Milestone: 4.11.4Indefinite

Needs funding to resolve this ticket.

Note: See TracTickets for help on using tickets.