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 1A06D3843844 for ; Tue, 25 Jun 2024 12:53:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1A06D3843844 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 1A06D3843844 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=1719319995; cv=none; b=GElb4UfsFFIBNLYHFlt6UhUc/rSJC0M0oZB1AUtVOvm+rduGm1crdw/W5Trlaz5GgNQoetvm7WMNdLkJHPI3gGPeL0lfgbJZ8lssjj49NLgPkp2XzofQGYEczwPgXjFDUBeLX5PN+3HCDN81qkdCJmmqERFkI6wFWjEOL7thRyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719319995; c=relaxed/simple; bh=JYSDJ8WthduH15QfgvCSj/6rvJd9LmULZhP+uhbjbhI=; h=Message-ID:Date:MIME-Version:Subject:From:To; b=U2KrZqTvFQV4D4cTxyOMxUoX0IzmmEZ5AE5lX1Fc6RCW5TD7J6EjLCm/qVos0QjuHlO0T2SI9IuM0c+XM2HSlkitDsohizxT/gcBbLR/40nu5YaSdepShE1kBS59WQVJla1wflWYkU9uKkdLOjzn5Ejg3r/cGAJuP/YNCIYU720= 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 1sM5fY-0007M1-0Z for gcc@gcc.gnu.org; Tue, 25 Jun 2024 14:53:08 +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 1sM5fY-000If8-1b for gcc@gcc.gnu.org; Tue, 25 Jun 2024 14:53:08 +0200 Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 8F98E48005A for ; Tue, 25 Jun 2024 14:53:07 +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 NJP0ljTY9r4h for ; Tue, 25 Jun 2024 14:53:07 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 102B748016A for ; Tue, 25 Jun 2024 14:53:07 +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 5382KQ9t4jWI for ; Tue, 25 Jun 2024 14:53:06 +0200 (CEST) Received: from [10.10.171.10] (unknown [10.10.171.10]) by mail.embedded-brains.de (Postfix) with ESMTPSA id D36DD48005A for ; Tue, 25 Jun 2024 14:53:06 +0200 (CEST) Message-ID: <55a7767f-09aa-48cf-a78a-6ea727d834ea@embedded-brains.de> Date: Tue, 25 Jun 2024 14:53:06 +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> <5e068644-24f8-4d18-91b5-5b07919bbec0@embedded-brains.de> Content-Language: en-US In-Reply-To: <5e068644-24f8-4d18-91b5-5b07919bbec0@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/27317/Tue Jun 25 10:26:12 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 24.06.24 16:06, Sebastian Huber wrote: > On 28.04.22 10:16, Sebastian Huber wrote: >> Hello, >> >> I test currently the Ada support for RTEMS in GCC 12. We have a=20 >> -mthumb -march=3Darmv7-a+simd -mfloat-abi=3Dhard multilib for which th= e=20 >> Ada RTS is built like this: >> >> 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+si= md=20 >> -mfloat-abi=3Dhard" "GNATLIBCFLAGS=3D-g -O2 -mthumb -march=3Darmv7-a+s= imd=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+= simd=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/ar= mv7-a+simd/hard" "toolexeclibdir=3D/tmp/sh/i-arm-rtems6/lib64/gcc/arm-rte= ms6/12.0.1/thumb/armv7-a+simd/hard/adalib" "objext=3D.o" "prefix=3D/tmp/s= h/i-arm-rtems6" "exeext=3D.exeext.should.not.be.used " 'CC=3Dthe.host.com= piler.should.not.be.needed' "GCC_FOR_TARGET=3D/tmp/sh/b-gcc-arm-rtems6/./= gcc/xgcc -B/tmp/sh/b-gcc-arm-rtems6/./gcc/ -nostdinc -B/tmp/sh/b-gcc-arm-= rtems6/arm-rtems6/newlib/ -isystem /tmp/sh/b-gcc-arm-rtems6/arm-rtems6/ne= wlib/targ-include -isystem /home/EB/sebastian_h/src/gcc/newlib/libc/inclu= de -B/tmp/sh/i-arm-rtems6/arm-rtems6/bin/ -B/tmp/sh/i-arm-rtems6/arm-rtem= s6/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/xosc= ons >> >> When I try to link a test application I get this error: >> >> arm-rtems7-gnatlink=20 >> /tmp/sh/b-rtems/arm/realview_pbx_a9_qemu/testsuites/ada/samples/nsecs/= nsecs.ali testsuites/ada/samples/nsecs/init.o -qnolinkcmds -T linkcmds.re= alview_pbx_a9_qemu -Wl,--wrap=3Dprintf -Wl,--wrap=3Dputs -Wl,--wrap=3Dput= char -L. -lrtemscpu -lrtemsbsp -lrtemstest -qrtems -mthumb -march=3Darmv7= -a+simd -mfloat-abi=3Dhard -mtune=3Dcortex-a9 -Wl,--gc-sections -L/home/E= B/sebastian_h/src/rtems/bsps/arm/shared/start -L/home/EB/sebastian_h/src/= rtems/bsps/arm/realview-pbx-a9/start -o /tmp/sh/b-rtems/arm/realview_pbx_= a9_qemu/testsuites/ada/ada_nsecs.exe >> /opt/rtems/7/lib/gcc/arm-rtems7/12.0.1/thumb/armv7-a+simd/hard/adaincl= ude/s-secsta.ads:288:9: sorry, unimplemented: Thumb-1 'hard-float' VFP AB= I >> >> 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? >=20 > 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): >=20 > [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_z= ynq_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", "-mthum= b",=20 > "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9", "-march=3Da= rmv7-a",=20 > "-mthumb", "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 > "-print-multi-directory"], []) =3D 0 >=20 > The above call is used to get the multi-lib directory. Which yields: >=20 > --RTS=3Dthumb/armv7-a+simd/hard >=20 > The flags seem to be obtained by getting all "-m" flags from the=20 > previous "-cargs" and "-largs". So, each flags appears twice. >=20 > [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/xilin= x_zynq_zc702/testsuites/ada/tmtests/tm20", "-Mgnat_main", "-Icpukit/inclu= de/adainclude", "-I../../../../src/rtems/cpukit/include/adainclude", "-It= estsuites/ada/support", "-I../../../../src/rtems/testsuites/ada/support",= "--RTS=3Dthumb/armv7-a+simd/hard", "-x", "/opt/rtems-6-zynq-1/build/arm-= xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq_zc702/testsuites/ada/tmtests/= tm20/tm20.ali"], []) =3D 0 >=20 > [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_z= ynq_zc702/testsuites/ada/tmtests/tm20/tm20.ali", "testsuites/ada/tmtests/= tm20/init.o", "-Wl,--wrap=3Dprintf", "-Wl,--wrap=3Dputs", "-Wl,--wrap=3Dp= utchar", "-L.", "-lrtemscpu", "-lrtemsbsp", "-lrtemstest", "-qrtems", "-m= arch=3Darmv7-a", "-mthumb", "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune= =3Dcortex-a9", "-Wl,--gc-sections", "-L/opt/rtems-6-zynq-1/src/rtems/bsps= /arm/shared/start", "-L/opt/rtems-6-zynq-1/src/rtems/bsps/arm/xilinx-zynq= /start", "-o", "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra= /arm/xilinx_zynq_zc702/testsuites/ada/ada_tm20.exe"], []) =3D 0 >=20 > Now the trouble starts, there is no longer a "-march=3Darmv7-a" option: >=20 > [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_z= ynq_zc702/b~tm20.adb"], []) =3D 0 >=20 > Here a "-march=3Darmv4t" pops up. >=20 > [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_z= ynq_zc702/b~tm20.adb", "-o", "/tmp/ccZhtzF7.s"], ["COLLECT_GCC=3D/opt/rte= ms-6-zynq-1/bin/arm-rtems6-gcc", "COLLECT_GCC_OPTIONS=3D'-c' '-mthumb' '-= mfpu=3Dneon' '-mfloat-abi=3Dhard' '-mtune=3Dcortex-a9' '-fRTS=3Dthumb/arm= v7-a+simd/hard' '-gnatA' '-gnatWb' '-gnatiw' '-gnatws' '-mcpu=3Darm7tdmi'= '-mlibarch=3Darmv4t' '-march=3Darmv4t'"] >=20 > Could someone give me a hint which component in GCC does this kind of=20 > option processing and mapping? It looks like the bogus options are loaded from a ALI file. The ALI file=20 is produced by: [pid 129509]=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", "-I",=20 "/opt/rtems-6-zynq-1/src/rtems/testsuites/ada/tmtests/tm21/", "-I",=20 "cpukit/include/adainclude", "-I",=20 "../../../../src/rtems/cpukit/include/adainclude", "-I",=20 "testsuites/ada/support", "-I",=20 "../../../../src/rtems/testsuites/ada/support", "-I", "-", "-quiet",=20 "-dumpdir",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm21/",=20 "-dumpbase", "tm21.adb", "-dumpbase-ext", ".adb", "-gnatez", "-gnatea",=20 "-mthumb", "-mfpu=3Dneon", "-mfloat-abi=3Dhard", "-mtune=3Dcortex-a9",=20 "-fRTS=3Dthumb/armv7-a+simd/hard", "-gnatez", "-mlibarch=3Darmv7-a+simd",= =20 "-march=3Darmv7-a+simd", "-ftls-model=3Dlocal-exec", "-gnatO",=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm21/tm21.o",=20 "/opt/rtems-6-zynq-1/src/rtems/testsuites/ada/tmtests/tm21/tm21.adb",=20 "-o", "/tmp/ccK4c8JY.s"], [...,=20 "COLLECT_GCC=3D/opt/rtems-6-zynq-1//bin/arm-rtems6-gcc",=20 "COLLECT_GCC_OPTIONS=3D'-gnatea' '-c' '-I'=20 '/opt/rtems-6-zynq-1/src/rtems/testsuites/ada/tmtests/tm21/' '-I'=20 'cpukit/include/adainclude' '-I'=20 '../../../../src/rtems/cpukit/include/adainclude' '-I'=20 'testsuites/ada/support' '-I'=20 '../../../../src/rtems/testsuites/ada/support' '-mthumb' '-mfpu=3Dneon'=20 '-mfloat-abi=3Dhard' '-mtune=3Dcortex-a9' '-fRTS=3Dthumb/armv7-a+simd/har= d'=20 '-I' '-' '-o'=20 '/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm21/tm21.o'=20 '-gnatez' '-mlibarch=3Darmv7-a+simd' '-march=3Darmv7-a+simd' '-dumpdir'=20 '/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm21/'"]=20 This command has all the required options. It writes an ALI file: [pid 129509]=20 unlink("/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xil= inx_zynq_zc702/testsuites/ada/tmtests/tm21/tm21.ali")=20 =3D -1 ENOENT (No such file or directory) [pid 129509] openat(AT_FDCWD,=20 "/opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zyn= q_zc702/testsuites/ada/tmtests/tm21/tm21.ali",=20 O_WRONLY|O_CREAT|O_TRUNC, 0666) =3D 4 In this file not all required machine options are stored: head=20 /opt/rtems-6-zynq-1/build/arm-xilinx_zynq_zc702-bsp-extra/arm/xilinx_zynq= _zc702/testsuites/ada/tmtests/tm21/tm21.ali V "GNAT Lib v13" M P W=3Db A -mthumb A -mfpu=3Dneon A -mfloat-abi=3Dhard A -mtune=3Dcortex-a9 A --RTS=3Dthumb/armv7-a+simd/hard P ZX RN The "-march=3Darmv7-a+simd" is missing. --=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/