From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dedi548.your-server.de (dedi548.your-server.de [85.10.215.148]) by sourceware.org (Postfix) with ESMTPS id A19F43858D35 for ; Mon, 24 Jun 2024 14:06:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A19F43858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embedded-brains.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A19F43858D35 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=85.10.215.148 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719238006; cv=none; b=LzMGK8C8WS6T/MaUuh5PFko/qM5vfINhU8I3cC1E/0oDycQdO248M20Xs8rbIcAwOA+gvKdVteCFd+tPExGymi6/YhK9JyYjezaJ4BEGWKna4l8TCBbeisBkR4IA5UWOQ5pgisB4MchWv95VIjdZnCl0Woxdow0N40yrcmTKB/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719238006; c=relaxed/simple; bh=UwKowK6r26P3o8JKXVcD9w+wlAKozZ7vn6ySpqxJcg0=; h=Message-ID:Date:MIME-Version:Subject:From:To; b=OhrwmPNTF/1RU0xXu6I98cXuUxLSVkbgiTGL2pYnntkJ0Uf7X5oL1y/0pvzsKglc48XjgHMUrh0INo16E9arZq0+xRVWpzHydnwQNCgsPvHgrsqc2Jj4JfkWh6/z0/2mg2gVEFyXgfBVKsDZ/QLQ6qK7gbW4EDNc/2oYMBBZxDk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from sslproxy05.your-server.de ([78.46.172.2]) by dedi548.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1sLkL4-0003Bo-1U for gcc@gcc.gnu.org; Mon, 24 Jun 2024 16:06:34 +0200 Received: from [82.100.198.138] (helo=mail.embedded-brains.de) by sslproxy05.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1sLkL4-00088d-2X for gcc@gcc.gnu.org; Mon, 24 Jun 2024 16:06:34 +0200 Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id E1015480190 for ; Mon, 24 Jun 2024 16:06:33 +0200 (CEST) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavis, port 10032) with ESMTP id Cmg7SLlRSI6n for ; Mon, 24 Jun 2024 16:06:33 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 63199480199 for ; Mon, 24 Jun 2024 16:06:33 +0200 (CEST) X-Virus-Scanned: amavis at zimbra.eb.localhost Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavis, port 10026) with ESMTP id Qf774k3beIov for ; Mon, 24 Jun 2024 16:06:33 +0200 (CEST) Received: from [10.10.171.10] (unknown [10.10.171.10]) by mail.embedded-brains.de (Postfix) with ESMTPSA id 2C6AD480190 for ; Mon, 24 Jun 2024 16:06:33 +0200 (CEST) Message-ID: <5e068644-24f8-4d18-91b5-5b07919bbec0@embedded-brains.de> Date: Mon, 24 Jun 2024 16:06:32 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: gnatlink vs. -mthumb -march=armv7-a+simd -mfloat-abi=hard From: Sebastian Huber To: gcc@gcc.gnu.org References: <34bf050f-eaf9-3209-a2de-857a149dd8d3@embedded-brains.de> Content-Language: en-US In-Reply-To: <34bf050f-eaf9-3209-a2de-857a149dd8d3@embedded-brains.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Authenticated-Sender: smtp-embedded@poldi-networks.de X-Virus-Scanned: Clear (ClamAV 1.0.3/27316/Mon Jun 24 10:26:29 2024) X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 28.04.22 10:16, Sebastian Huber wrote: > Hello, >=20 > I test currently the Ada support for RTEMS in GCC 12. We have a -mthumb= =20 > -march=3Darmv7-a+simd -mfloat-abi=3Dhard multilib for which the Ada RTS= is=20 > built like this: >=20 > make[4]: Entering directory=20 > '/tmp/sh/b-gcc-arm-rtems6/arm-rtems6/thumb/armv7-a+simd/hard/libada' > make -C ../../../../.././gcc/ada "MAKEOVERRIDES=3D" "LDFLAGS=3D-mthumb=20 > -march=3Darmv7-a+simd -mfloat-abi=3Dhard" "LN_S=3Dln -s" "SHELL=3D/bin/= sh"=20 > "GNATLIBFLAGS=3D-W -Wall -gnatpg -nostdinc -mthumb -march=3Darmv7-a+sim= d=20 > -mfloat-abi=3Dhard" "GNATLIBCFLAGS=3D-g -O2 -mthumb -march=3Darmv7-a+si= md=20 > -mfloat-abi=3Dhard" "GNATLIBCFLAGS_FOR_C=3D-W -Wall -g -O2 -g -O2=20 > -fexceptions -DIN_RTS -DHAVE_GETIPINFO=C2=A0 -mthumb -march=3Darmv7-a+s= imd=20 > -mfloat-abi=3Dhard" "PICFLAG_FOR_TARGET=3D-fPIC" "THREAD_KIND=3Dnative"= =20 > "TRACE=3Dno" "MULTISUBDIR=3D/thumb/armv7-a+simd/hard"=20 > "libsubdir=3D/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rtems6/12.0.1/thumb/arm= v7-a+simd/hard" "toolexeclibdir=3D/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rtem= s6/12.0.1/thumb/armv7-a+simd/hard/adalib" "objext=3D.o" "prefix=3D/tmp/sh= /i-arm-rtems6" "exeext=3D.exeext.should.not.be.used " 'CC=3Dthe.host.comp= iler.should.not.be.needed' "GCC_FOR_TARGET=3D/tmp/sh/b-gcc-arm-rtems6/./g= cc/xgcc -B/tmp/sh/b-gcc-arm-rtems6/./gcc/ -nostdinc -B/tmp/sh/b-gcc-arm-r= tems6/arm-rtems6/newlib/ -isystem /tmp/sh/b-gcc-arm-rtems6/arm-rtems6/new= lib/targ-include -isystem /home/EB/sebastian_h/src/gcc/newlib/libc/includ= e -B/tmp/sh/i-arm-rtems6/arm-rtems6/bin/ -B/tmp/sh/i-arm-rtems6/arm-rtems= 6/lib/ -isystem /tmp/sh/i-arm-rtems6/arm-rtems6/include -isystem /tmp/sh/= i-arm-rtems6/arm-rtems6/sys-include=C2=A0=C2=A0 " "CFLAGS=3D-g -O2=C2=A0 = -mthumb -march=3Darmv7-a+simd -mfloat-abi=3Dhard" ./bldtools/oscons/xosco= ns >=20 > When I try to link a test application I get this error: >=20 > arm-rtems7-gnatlink=20 > /tmp/sh/b-rtems/arm/realview_pbx_a9_qemu/testsuites/ada/samples/nsecs/n= secs.ali testsuites/ada/samples/nsecs/init.o -qnolinkcmds -T linkcmds.rea= lview_pbx_a9_qemu -Wl,--wrap=3Dprintf -Wl,--wrap=3Dputs -Wl,--wrap=3Dputc= har -L. -lrtemscpu -lrtemsbsp -lrtemstest -qrtems -mthumb -march=3Darmv7-= a+simd -mfloat-abi=3Dhard -mtune=3Dcortex-a9 -Wl,--gc-sections -L/home/EB= /sebastian_h/src/rtems/bsps/arm/shared/start -L/home/EB/sebastian_h/src/r= tems/bsps/arm/realview-pbx-a9/start -o /tmp/sh/b-rtems/arm/realview_pbx_a= 9_qemu/testsuites/ada/ada_nsecs.exe > /opt/rtems/7/lib/gcc/arm-rtems7/12.0.1/thumb/armv7-a+simd/hard/adainclu= de/s-secsta.ads:288:9: sorry, unimplemented: Thumb-1 'hard-float' VFP ABI >=20 > The s-secsta.ads seems to be from the right multilib directory=20 > (Thumb-2), however, I get a sorry message related to Thumb-1? I tried it again with GCC 13, but the problem still exists. I tried to=20 use strace to get some more insights (the environment variables are=20 partially shown): [pid 110912] execve("/opt/rtems-6-zynq-1/bin/arm-rtems6-gnatmake",=20 ["/opt/rtems-6-zynq-1/bin/arm-rtems6-gnatmake", "-D",=20 "testsuites/ada/tmtests/tm20", "-bargs", "-Mgnat_main", "-margs",=20 "-Icpukit/include/adainclude",=20 "-I../../../../src/rtems/cpukit/include/adainclude",=20 "-Itestsuites/ada/support",=20 "-I../../../../src/rtems/testsuites/ada/support", "-cargs",=20 "-march=3Darmv7-a", "-mthumb", "-mfpu=3Dneon", "-mfloat-abi=3Dhard",=20 "-mtune=3Dcortex-a9", "-largs", "testsuites/ada/tmtests/tm20/init.o",=20 "-Wl,--wrap=3Dprintf", "-Wl,--wrap=3Dputs", "-Wl,--wrap=3Dputchar", "-L."= ,=20 "-lrtemscpu", "-lrtemsbsp", "-lrtemstest", "-qrtems", "-march=3Darmv7-a",= =20 "-mthumb", "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 "-Wl,--gc-sections",=20 "-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/shared/start",=20 "-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/xilinx-zynq/start", "-margs",=20 "-a",=20 "/opt/rtems-6-zynq-1/src/rtems/testsuites/ada/tmtests/tm20/tm20.adb",=20 "-o",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/ada_tm20.exe"],=20 [] [pid 110913] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc",=20 ["/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc", "-march=3Darmv7-a", "-mthumb"= ,=20 "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9", "-march=3Darm= v7-a",=20 "-mthumb", "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 "-print-multi-directory"], []) =3D 0 The above call is used to get the multi-lib directory. Which yields: --RTS=3Dthumb/armv7-a+simd/hard The flags seem to be obtained by getting all "-m" flags from the=20 previous "-cargs" and "-largs". So, each flags appears twice. [pid 110914] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatbind",=20 ["/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatbind",=20 "-aO/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_= zynq_zc702/testsuites/ada/tmtests/tm20",=20 "-Mgnat_main", "-Icpukit/include/adainclude",=20 "-I../../../../src/rtems/cpukit/include/adainclude",=20 "-Itestsuites/ada/support",=20 "-I../../../../src/rtems/testsuites/ada/support",=20 "--RTS=3Dthumb/armv7-a+simd/hard", "-x",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm20/tm20.ali"],=20 []) =3D 0 [pid 110915] execve("/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatlink",=20 ["/opt/rtems-6-zynq-1//bin/arm-rtems6-gnatlink",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm20/tm20.ali",=20 "testsuites/ada/tmtests/tm20/init.o", "-Wl,--wrap=3Dprintf",=20 "-Wl,--wrap=3Dputs", "-Wl,--wrap=3Dputchar", "-L.", "-lrtemscpu",=20 "-lrtemsbsp", "-lrtemstest", "-qrtems", "-march=3Darmv7-a", "-mthumb",=20 "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 "-Wl,--gc-sections",=20 "-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/shared/start",=20 "-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/xilinx-zynq/start", "-o",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/ada_tm20.exe"],=20 []) =3D 0 Now the trouble starts, there is no longer a "-march=3Darmv7-a" option: [pid 110916] execve("/opt/rtems-6-zynq-1/bin/arm-rtems6-gcc",=20 ["/opt/rtems-6-zynq-1/bin/arm-rtems6-gcc", "-c", "-mthumb",=20 "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 "--RTS=3Dthumb/armv7-a+simd/hard", "-gnatA", "-gnatWb", "-gnatiw",=20 "-gnatws",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/b~tm20.adb"],=20 []) =3D 0 Here a "-march=3Darmv4t" pops up. [pid 110917]=20 execve("/opt/rtems-6-zynq-1/lib/gcc/arm-rtems6/13.2.1/gnat1",=20 ["/opt/rtems-6-zynq-1/lib/gcc/arm-rtems6/13.2.1/gnat1", "-quiet",=20 "-dumpbase", "b~tm20.adb", "-dumpbase-ext", ".adb", "-mthumb",=20 "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 "-fRTS=3Dthumb/armv7-a+simd/hard", "-gnatA", "-gnatWb", "-gnatiw",=20 "-gnatws", "-mcpu=3Darm7tdmi", "-mlibarch=3Darmv4t", "-march=3Darmv4t",=20 "-ftls-model=3Dlocal-exec",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/b~tm20.adb",=20 "-o", "/tmp/ccZhtzF7.s"],=20 ["COLLECT_GCC=3D/opt/rtems-6-zynq-1/bin/arm-rtems6-gcc",=20 "COLLECT_GCC_OPTIONS=3D'-c' '-mthumb' '-mfpu=3Dneon' '-mfloat-abi=3Dhard'= =20 '-mtune=3Dcortex-a9' '-fRTS=3Dthumb/armv7-a+simd/hard' '-gnatA' '-gnatWb'= =20 '-gnatiw' '-gnatws' '-mcpu=3Darm7tdmi' '-mlibarch=3Darmv4t'=20 '-march=3Darmv4t'"] Could someone give me a hint which component in GCC does this kind of=20 option processing and mapping? --=20 embedded brains GmbH & Co. KG Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.huber@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht M=C3=BCnchen Registernummer: HRB 157899 Vertretungsberechtigte Gesch=C3=A4ftsf=C3=BChrer: Peter Rasmussen, Thomas= D=C3=B6rfler Unsere Datenschutzerkl=C3=A4rung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/