* RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg'
@ 2018-07-02 13:47 Sebastian Huber
2018-07-02 20:03 ` Eric Botcazou
0 siblings, 1 reply; 5+ messages in thread
From: Sebastian Huber @ 2018-07-02 13:47 UTC (permalink / raw)
To: GCC
Hello,
I get the following link-time error while building an Ada test program
on RISC-V and RTEMS:
riscv64-rtems5-gnatlink hello.ali -march=rv64imafd -mabi=lp64d
-mcmodel=medany -O2 -g -ffunction-sections -fdata-sections -Wall
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs
-B/build/git-build/b-rv64imafd_medany/riscv64-rtems5/c/rv64imafd_medany/lib/libbsp/riscv/riscv
-B/home/EB/sebastian_h/git-rtems-5/bsps/riscv/riscv/start -specs
bsp_specs -qrtems -L../../../../../../rv64imafd_medany/lib
-L/home/EB/sebastian_h/git-rtems-5/bsps/riscv/shared/start
-Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections
init.o -o ada_hello.exe
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/../../../../riscv64-rtems5/bin/ld:
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/rv64imafd/lp64d/medany/adalib/libgnat.a(a-calend.o):
in function `ada__calendar__arithmetic_operations__add':
/scratch/git-rtems-source-builder/rtems/build/riscv64-rtems5-gcc-2e2052934b0c82e0726ed44de4a9b0a29ed6b276-newlib-3.0.0-x86_64-linux-gnu-1/build/gcc/ada/rts_rv64imafd_lp64d_medany/a-calend.adb:797:
undefined reference to `__gnat_raise_nodefer_with_msg'
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/../../../../riscv64-rtems5/bin/ld:
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/rv64imafd/lp64d/medany/adalib/libgnat.a(a-calend.o):
in function `ada__calendar__arithmetic_operations__subtract':
/scratch/git-rtems-source-builder/rtems/build/riscv64-rtems5-gcc-2e2052934b0c82e0726ed44de4a9b0a29ed6b276-newlib-3.0.0-x86_64-linux-gnu-1/build/gcc/ada/rts_rv64imafd_lp64d_medany/a-calend.adb:894:
undefined reference to `__gnat_raise_nodefer_with_msg'
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/../../../../riscv64-rtems5/bin/ld:
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/rv64imafd/lp64d/medany/adalib/libgnat.a(a-calend.o):
in function `ada__calendar__conversion_operations__to_ada_time':
/scratch/git-rtems-source-builder/rtems/build/riscv64-rtems5-gcc-2e2052934b0c82e0726ed44de4a9b0a29ed6b276-newlib-3.0.0-x86_64-linux-gnu-1/build/gcc/ada/rts_rv64imafd_lp64d_medany/a-calend.adb:917:
undefined reference to `__gnat_raise_nodefer_with_msg'
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/../../../../riscv64-rtems5/bin/ld:
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/rv64imafd/lp64d/medany/adalib/libgnat.a(a-calend.o):
in function `ada__calendar__conversion_operations__to_unix_time':
/scratch/git-rtems-source-builder/rtems/build/riscv64-rtems5-gcc-2e2052934b0c82e0726ed44de4a9b0a29ed6b276-newlib-3.0.0-x86_64-linux-gnu-1/build/gcc/ada/rts_rv64imafd_lp64d_medany/a-calend.adb:1095:
undefined reference to `__gnat_raise_nodefer_with_msg'
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/../../../../riscv64-rtems5/bin/ld:
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/rv64imafd/lp64d/medany/adalib/libgnat.a(a-calend.o):
in function `ada__calendar__Oadd':
/scratch/git-rtems-source-builder/rtems/build/riscv64-rtems5-gcc-2e2052934b0c82e0726ed44de4a9b0a29ed6b276-newlib-3.0.0-x86_64-linux-gnu-1/build/gcc/ada/rts_rv64imafd_lp64d_medany/a-calend.adb:249:
undefined reference to `__gnat_raise_nodefer_with_msg'
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/../../../../riscv64-rtems5/bin/ld:
/build/rtems/5/lib/gcc/riscv64-rtems5/8.1.1/rv64imafd/lp64d/medany/adalib/libgnat.a(a-calend.o):/scratch/git-rtems-source-builder/rtems/build/riscv64-rtems5-gcc-2e2052934b0c82e0726ed44de4a9b0a29ed6b276-newlib-3.0.0-x86_64-linux-gnu-1/build/gcc/ada/rts_rv64imafd_lp64d_medany/a-calend.adb:261:
more undefined references to `__gnat_raise_nodefer_with_msg' follow
I cannot find it in the GCC sources:
grep -ri raise_nodefer_with_msg
gcc/ada/gcc-interface/trans.c: (get_identifier
("__gnat_raise_nodefer_with_msg"), NULL_TREE, ftype,
Who is supposed to provide an implementation of
__gnat_raise_nodefer_with_msg?
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg'
2018-07-02 13:47 RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg' Sebastian Huber
@ 2018-07-02 20:03 ` Eric Botcazou
2018-07-03 5:22 ` Sebastian Huber
0 siblings, 1 reply; 5+ messages in thread
From: Eric Botcazou @ 2018-07-02 20:03 UTC (permalink / raw)
To: Sebastian Huber; +Cc: gcc
> I cannot find it in the GCC sources:
>
> grep -ri raise_nodefer_with_msg
> gcc/ada/gcc-interface/trans.c: (get_identifier
> ("__gnat_raise_nodefer_with_msg"), NULL_TREE, ftype,
>
> Who is supposed to provide an implementation of
> __gnat_raise_nodefer_with_msg?
No one, it's obsolete. The port is very likely not (properly) configured.
--
Eric Botcazou
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg'
2018-07-02 20:03 ` Eric Botcazou
@ 2018-07-03 5:22 ` Sebastian Huber
2018-07-03 7:10 ` Eric Botcazou
0 siblings, 1 reply; 5+ messages in thread
From: Sebastian Huber @ 2018-07-03 5:22 UTC (permalink / raw)
To: Eric Botcazou; +Cc: gcc
On 02/07/18 22:03, Eric Botcazou wrote:
>> I cannot find it in the GCC sources:
>>
>> grep -ri raise_nodefer_with_msg
>> gcc/ada/gcc-interface/trans.c: (get_identifier
>> ("__gnat_raise_nodefer_with_msg"), NULL_TREE, ftype,
>>
>> Who is supposed to provide an implementation of
>> __gnat_raise_nodefer_with_msg?
> No one, it's obsolete. The port is very likely not (properly) configured.
In master and gcc-8-branch:
grep -ri raise_nodefer_with_msg gcc/ada
gcc/ada/gcc-interface/trans.c: (get_identifier
("__gnat_raise_nodefer_with_msg"), NULL_TREE, ftype,
In gcc-7-branch:
grep -ri raise_nodefer_with_msg gcc/ada
gcc/ada/a-exexpr.adb: pragma Export (C, Propagate_Continue,
"__gnat_raise_nodefer_with_msg");
gcc/ada/gcc-interface/trans.c: (get_identifier
("__gnat_raise_nodefer_with_msg"), NULL_TREE, ftype,
gcc/ada/a-except.adb: pragma Export (C, Raise_Current_Excep,
"__gnat_raise_nodefer_with_msg");
It seems the a-except.adb was replaced by a-except-2005.adb in this commit:
commit 4af1de5b4b45c597d63e935dc3fae6d94b27d39e
Author: charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu Apr 27 09:48:45 2017 +0000
2017-04-27 Claire Dross <dross@adacore.com>
* a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
modifications in functional containers.
* a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads
Reformat
to improve readablity. Subprograms are separated between basic
operations, constructors and properties. Universally quantified
formulas in contracts are factorized in independant functions
with a name and a comment. Names of parameters are improved.
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem_res.adb (Resolve_Type_Conversion): Do not
install a predicate check here since this is already done
during
the expansion phase. Verify whether the operand satisfies the
static predicate (if any) of the target type.
* sem_ch3.adb (Analyze_Object_Declaration): Do
not install a predicate check if the object is initialized by
means of a type conversion because the conversion is subjected
to the same check.
2017-04-27 Tristan Gingold <gingold@adacore.com>
* raise.c (__gnat_builtin_longjmp): Remove.
(__gnat_bracktrace):
Add a dummy definition for the compiler (__gnat_eh_personality,
__gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19,
__gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30,
__gnat_rcheck_31, __gnat_rcheck_32): Likewise.
* a-exexpr.adb: Renamed from a-exexpr-gcc.adb
* a-except.ads, a-except.adb: Renamed from a-except-2005.ads
and a-except-2005.adb.
* raise-gcc.c: Allow build in compiler, compiled as a C++
file.
(__gnat_Unwind_ForcedUnwind): Adjust prototype.
(db): Constify msg_format.
(get_call_site_action_for): Don't use void arithmetic.
* system.ads (Frontend_Exceptions): Set to False.
(ZCX_By_Default): Set to True.
(GCC_ZC_Support): Set to True.
* gcc-interface/Makefile.in: No more variants for
a-exexpr.adb and
a-except.ad[sb].
* gcc-interface/Make-lang.in: Add support for backend zcx
exceptions
in gnat1 and gnatbind.
* gnat1, gnatbind: link with raise-gcc.o, a-exctra.o,
s-addima.o,
s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o
* s-excmac.ads, s-excmac.adb: Copy of variants.
* a-except.o: Adjust preequisites.
Add handling of s-excmac-arm.adb and s-excmac-gcc.adb.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@247301
138bc75d-0d04-0410-961f-82ee72b054a4
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg'
2018-07-03 5:22 ` Sebastian Huber
@ 2018-07-03 7:10 ` Eric Botcazou
2018-07-04 5:37 ` Sebastian Huber
0 siblings, 1 reply; 5+ messages in thread
From: Eric Botcazou @ 2018-07-03 7:10 UTC (permalink / raw)
To: Sebastian Huber; +Cc: gcc
> It seems the a-except.adb was replaced by a-except-2005.adb in this commit:
Right, it's by design, the old support for SJLJ exceptions has been ditched
for full runtimes. You probably just need to swap the values of
Frontend_Exceptions : constant Boolean := True;
ZCX_By_Default : constant Boolean := False;
in system-rtems.ads.
--
Eric Botcazou
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg'
2018-07-03 7:10 ` Eric Botcazou
@ 2018-07-04 5:37 ` Sebastian Huber
0 siblings, 0 replies; 5+ messages in thread
From: Sebastian Huber @ 2018-07-04 5:37 UTC (permalink / raw)
To: Eric Botcazou; +Cc: gcc
On 03/07/18 09:10, Eric Botcazou wrote:
>> It seems the a-except.adb was replaced by a-except-2005.adb in this commit:
> Right, it's by design, the old support for SJLJ exceptions has been ditched
> for full runtimes. You probably just need to swap the values of
>
> Frontend_Exceptions : constant Boolean := True;
> ZCX_By_Default : constant Boolean := False;
>
> in system-rtems.ads.
Thanks, this worked.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-07-04 5:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-02 13:47 RISC-V and Ada: undefined references to `__gnat_raise_nodefer_with_msg' Sebastian Huber
2018-07-02 20:03 ` Eric Botcazou
2018-07-03 5:22 ` Sebastian Huber
2018-07-03 7:10 ` Eric Botcazou
2018-07-04 5:37 ` Sebastian Huber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).