From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id B62F23857C76 for ; Fri, 10 Dec 2021 18:24:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B62F23857C76 Received: by mail-wm1-x32e.google.com with SMTP id p18so7465614wmq.5 for ; Fri, 10 Dec 2021 10:24:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:mime-version:subject:message-id:date:cc:to; bh=ikVBvE8fabu9bBblzq4taAao11Jnuy1NXiiu4N46YWg=; b=RgNTGAbSAv+nIO+I+9AAVvudt18rSuZHsG/wslgoBysdXKyMi2u+kq9VYoAYLFEN5S 95VuUG8ZGYFVOpnXwetu9OvnAhGG42rS4+/FUs0OtrAMo86T17S6rouDVDb5nAqx3uLB QCtdR1mj/Ss3GLohUleZ///8mVnkt1/xQ2Ibf3pLDWVFypTxiFiz2N9SEimXSn5I9Hjr 9jOO8vPMxdWU5GG/vwfEtPhQkLfNSN7K++x9bkVWpTLuifbwLqwKELZ68Z6DbLx/ZFYn uZRFAj6Gn4fuXc/oaid6igXLd1faxvBYW7diL2RK8+7wIP2HSxZ1yvtY/a3tMcmxg6UM zSZg== X-Gm-Message-State: AOAM5312nl9U1LcGXAFtuSmCID6AtTfpPkMUpRIA1bfVmkRMIaydZ6mo Rsk+rB7PE+rWrdBH7Xi2bAX3WcmkD3mLQUsc X-Google-Smtp-Source: ABdhPJzZC1YBPUL8zvRwt7pkNwkcrt/9xXkVpYlD41oziS3QwL6u+9Voidcw8ExQHoi2R/IT0ynNoQ== X-Received: by 2002:a05:600c:2217:: with SMTP id z23mr18735792wml.42.1639160680606; Fri, 10 Dec 2021 10:24:40 -0800 (PST) Received: from smtpclient.apple ([2a02:2ab8:224:1:5018:c84a:9614:761d]) by smtp.gmail.com with ESMTPSA id q14sm179644wrz.109.2021.12.10.10.24.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 10 Dec 2021 10:24:40 -0800 (PST) From: Olivier Hainque Content-Type: multipart/mixed; boundary="Apple-Mail=_C1608FB0-3C10-449A-9FA7-D13014898AD3" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\)) Subject: [PATCH] Leverage sysroot for VxWorks Message-Id: <2D1EAC4F-3F8E-4CE5-A5DF-395C72B25F09@adacore.com> Date: Fri, 10 Dec 2021 19:24:39 +0100 Cc: Olivier Hainque , Rasmus Villemoes , Jerome Guitton To: gcc-patches X-Mailer: Apple Mail (2.3654.100.0.2.22) X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Dec 2021 18:24:43 -0000 --Apple-Mail=_C1608FB0-3C10-449A-9FA7-D13014898AD3 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Hello, The build of a VxWorks toolchain relies a lot on system headers and VxWorks has a few very specific features that require special processing. For example, different sets of headers for the kernel vs the rtp modes, which the compiler knows about by way of -mrtp on the command line. If we manage to avoid the need for fixincludes on recent versions of VxWorks (>= 7), we still need to handle at least VxWorks 6.9 at this stage. We sort of get away with locating the correct headers at run-time thanks to environment variables and various tests for -mrtp in cpp specs, but getting fixincludes to work for old configurations has always been tricky and getting a toolchain to build with c++/libstdc++ support gets trickier with every move to a more recent release. sysroot_headers_suffix_spec is a pretty powerful device to help address such issues, and this patch introduces changes that let us get advantage of it. The general idea is to leverage the assumption that compilations occur with --sysroot=$VSB_DIR on vx7 or --sysroot=$WIND_BASE/target prior to that. For the toolchains we build, this is achieved with a few configure options like: --with-sysroot --with-build-sysroot=${WIND_BASE}/target --with-specs=%{!sysroot=*:--sysroot=%:getenv(WIND_BASE /target)} This allows simplifying the libgcc compilation flags control and we take the opportunity to merge t-vxworks7 into t-vxworks as the two files were differing only on the libgcc2 flags part. This also makes sure that we don't set inhibit_libc true during the build, which is sane since the build really relies a lot on system headers. Preliminary tests showed that a build from mainline sources now actually fail if the build configuration somehow gets to inhibit_libc=true. I have had very good results with this for several ports on a gcc-11 branch, for both VxWorks 6.9 and two variants of 7.2, for both kernel and rtp modes, including with shared libs on two targets for 7.2 (powerpc64 and x86_64). I was also able to get a successful build of c, c++ and libstdc++ on mainline for VxWorks 6.9, with a few fixincludes adjustments as expected. This touches only VxWorks related items and, all in all, I believe this robustifies the family of ports and helps avoid build failure with mainline sources so remains applicable to the current stage. Olivier --- 2021-12-09 Olivier Hainque gcc/ * config/t-vxworks: Clear NATIVE_SYSTEM_HEADER_DIR. * config/vxworks.h (SYSROOT_HEADERS_SUFFIX_SPEC): Define, for VxWorks 7 and earlier. (VXWORKS_ADDITIONAL_CPP_SPEC): Simplify accordingly. (STARTFILE_PREFIX_SPEC): Adjust accordingly. * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Adjust. libgcc/ * config/t-vxworks (LIBGCC2_INCLUDES): Simplify and handle both VxWorks7 and earlier. * config/t-vxworks7: Remove. * config.host: Remove special case for vxworks7. --Apple-Mail=_C1608FB0-3C10-449A-9FA7-D13014898AD3 Content-Disposition: attachment; filename=0001-Leverage-sysroot-for-VxWorks.patch Content-Type: application/octet-stream; x-unix-mode=0640; name="0001-Leverage-sysroot-for-VxWorks.patch" Content-Transfer-Encoding: quoted-printable =46rom=205976a53ec96c7835504adb0808a31888440ee6a2=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Olivier=20Hainque=20=0A= Date:=20Fri,=2026=20Nov=202021=2021:37:46=20+0000=0ASubject:=20[PATCH]=20= Leverage=20sysroot=20for=20VxWorks=0A=0AThe=20build=20of=20a=20VxWorks=20= toolchain=20relies=20a=20lot=20on=20system=20headers=0Aand=20VxWorks=20= has=20a=20few=20very=20specific=20features=20that=20require=20special=0A= processing.=20For=20example,=20different=20sets=20of=20headers=20for=20= the=20kernel=0Avs=20the=20rtp=20modes,=20which=20the=20compiler=20knows=20= about=20by=20way=20of=20-mrtp=0Aon=20the=20command=20line.=0A=0AIf=20we=20= manage=20to=20avoid=20the=20need=20for=20fixincludes=20on=20recent=20= versions=0Aof=20VxWorks=20(>=3D=207),=20we=20still=20need=20to=20handle=20= at=20least=20VxWorks=206.9=20at=0Athis=20stage.=0A=0AWe=20sort=20of=20= get=20away=20with=20locating=20the=20correct=20headers=20at=0Arun-time=20= thanks=20to=20environment=20variables=20and=20various=20tests=20for=0A= -mrtp=20in=20cpp=20specs,=20but=20getting=20fixincludes=20to=20work=20= for=20old=0Aconfigurations=20has=20always=20been=20tricky=20and=20= getting=20a=20toolchain=0Ato=20build=20with=20c++/libstdc++=20support=20= gets=20trickier=20with=20every=0Amove=20to=20a=20more=20recent=20= release.=0A=0Asysroot_headers_suffix_spec=20is=20a=20pretty=20powerful=20= device=20to=20help=0Aaddress=20such=20issues,=20and=20this=20patch=20= introduces=20changes=20that=20let=0Aus=20get=20advantage=20of=20it.=0A=0A= The=20general=20idea=20is=20to=20leverage=20the=20assumption=20that=20= compilations=0Aoccur=20with=20--sysroot=3D$VSB_DIR=20on=20vx7=20or=20= --sysroot=3D$WIND_BASE/target=0Aprior=20to=20that.=0A=0AFor=20the=20= toolchains=20we=20build,=20this=20is=20achieved=20with=20a=20few=0A= configure=20options=20like:=0A=0A=20=20--with-sysroot=0A=20=20= --with-build-sysroot=3D${WIND_BASE}/target=0A=20=20= --with-specs=3D%{!sysroot=3D*:--sysroot=3D%:getenv(WIND_BASE=20/target)}=0A= =0AThis=20also=20allows=20simplifying=20the=20libgcc=20compilation=20= flags=20control=0Aand=20we=20take=20the=20opportunity=20to=20merge=20= t-vxworks7=20into=20t-vxworks=20as=0Athe=20two=20files=20were=20= differing=20only=20on=20the=20libgcc2=20flags=20part.=0A=0A2021-12-09=20=20= Olivier=20Hainque=20=20=0A=0Agcc/=0A=09*=20= config/t-vxworks:=20Clear=20NATIVE_SYSTEM_HEADER_DIR.=0A=09*=20= config/vxworks.h=20(SYSROOT_HEADERS_SUFFIX_SPEC):=20Define,=20for=0A=09= VxWorks=207=20and=20earlier.=0A=09(VXWORKS_ADDITIONAL_CPP_SPEC):=20= Simplify=20accordingly.=0A=09(STARTFILE_PREFIX_SPEC):=20Adjust=20= accordingly.=0A=09*=20config/rs6000/vxworks.h=20(STARTFILE_PREFIX_SPEC):=20= Adjust.=0A=0Alibgcc/=0A=09*=20config/t-vxworks=20(LIBGCC2_INCLUDES):=20= Simplify=20and=20handle=0A=09both=20VxWorks7=20and=20earlier.=0A=09*=20= config/t-vxworks7:=20Remove.=0A=09*=20config.host:=20Remove=20special=20= case=20for=20vxworks7.=0A---=0A=20gcc/config/rs6000/vxworks.h=20|=20=202=20= +-=0A=20gcc/config/t-vxworks=20=20=20=20=20=20=20=20|=20=208=20++++=0A=20= gcc/config/vxworks.h=20=20=20=20=20=20=20=20|=2074=20= ++++++++++++++++++++++++-------------=0A=20libgcc/config.host=20=20=20=20= =20=20=20=20=20=20|=20=203=20--=0A=20libgcc/config/t-vxworks=20=20=20=20=20= |=20=207=20++--=0A=20libgcc/config/t-vxworks7=20=20=20=20|=2022=20= -----------=0A=206=20files=20changed,=2061=20insertions(+),=2055=20= deletions(-)=0A=20delete=20mode=20100644=20libgcc/config/t-vxworks7=0A=0A= diff=20--git=20a/gcc/config/rs6000/vxworks.h=20= b/gcc/config/rs6000/vxworks.h=0Aindex=20ca21a3a7bd3..fbe09027163=20= 100644=0A---=20a/gcc/config/rs6000/vxworks.h=0A+++=20= b/gcc/config/rs6000/vxworks.h=0A@@=20-206,7=20+206,7=20@@=20along=20with=20= GCC;=20see=20the=20file=20COPYING3.=20=20If=20not=20see=0A=20=0A=20= #undef=20=20STARTFILE_PREFIX_SPEC=0A=20#define=20STARTFILE_PREFIX_SPEC=09= =09=09=09=09=09\=0A-=20"%{mrtp:%{!shared:%:getenv(WIND_BASE=20= /target/lib/usr/lib/ppc/PPC32/common)}}"=0A+=20= "%{mrtp:%{!shared:/lib/usr/lib/ppc/PPC32/common}}"=0A=20=0A=20/*=20For=20= aggregates=20passing,=20use=20the=20same,=20consistent=20ABI=20as=20= Linux.=20=20*/=0A=20#define=20AGGREGATE_PADDING_FIXED=200=0Adiff=20--git=20= a/gcc/config/t-vxworks=20b/gcc/config/t-vxworks=0Aindex=20= 0175a5f8ce5..689de141644=20100644=0A---=20a/gcc/config/t-vxworks=0A+++=20= b/gcc/config/t-vxworks=0A@@=20-24,6=20+24,14=20@@=20vxworks-c.o:=20= $(srcdir)/config/vxworks-c.c=0A=20=09$(COMPILE)=20$<=0A=20=09= $(POSTCOMPILE)=0A=20=0A+#=20We=20leverage=20$sysroot=20to=20find=20= target=20system=20headers=20only,=20distributed=0A+#=20in=20a=20VxWorks=20= (a)typical=20fashion=20with=20a=20different=20set=20of=20headers=20for=0A= +#=20rtp=20vs=20kernel=20mode.=20=20We=20setup=20= SYSROOT_HEADERS_SUFFIX_SPEC=20to=20handle=0A+#=20this,=20and=20need=20to=20= clear=20NATIVE_SYSTEM_HEADER_DIR=20to=20prevent=20it=20from=0A+#=20= interfering.=0A+=0A+NATIVE_SYSTEM_HEADER_DIR=20=3D=0A+=0A=20#=20Both=20= the=20kernel=20and=20RTP=20headers=20provide=20limits.h.=20=20They=20= embed=20VxWorks=0A=20#=20specificities=20and=20are=20dated=20on=20some=20= configurations=20so=20we=20both=20need=20to=0A=20#=20provide=20our=20own=20= version=20and=20make=20sure=20the=20system=20one=20gets=20exposed.=0A= diff=20--git=20a/gcc/config/vxworks.h=20b/gcc/config/vxworks.h=0Aindex=20= 8210de467dd..a89e3d68c62=20100644=0A---=20a/gcc/config/vxworks.h=0A+++=20= b/gcc/config/vxworks.h=0A@@=20-28,45=20+28,70=20@@=20along=20with=20GCC;=20= see=20the=20file=20COPYING3.=20=20If=20not=20see=0A=20=20=20=20like=20a=20= traditional=20Unix,=20with=20more=20external=20files.=20=20Most=20of=20= our=20specs=0A=20=20=20=20must=20be=20aware=20of=20the=20difference.=20=20= */=0A=20=0A-/*=20We=20look=20for=20the=20VxWorks=20header=20files=20= using=20the=20environment=0A-=20=20=20variables=20that=20are=20set=20in=20= VxWorks=20to=20indicate=20the=20location=20of=20the=0A-=20=20=20system=20= header=20files.=20=20We=20use=20-idirafter=20so=20that=20the=20GCC's=20= own=0A-=20=20=20header-file=20directories=20(containing=20,=20= etc.)=20come=20before=0A-=20=20=20the=20VxWorks=20system=20header=20= directories.=20=20*/=0A+/*=20Help=20locate=20system=20headers,=20= assuming=20$sysroot=20set=20to=20$VSB_DIR=20on=20vx7=20and=0A+=20=20=20= $WIND_BASE/target=20prior=20to=20that.=20=20Specs=20allow=20tailoring=20= for=20RTP=20vs=20kernel,=0A+=20=20=20and=20-idirafter=20allows=20putting=20= system=20directories=20after=20GCC's=20own=20directories=0A+=20=20=20for=20= standard=20headers=20such=20as=20=20or=20fixed=20include.=0A+=0A= +=20=20=20Regarding=20fixed=20includes,=20note=20the=20effect=20of=20= sysroot_headers_suffix_spec:=0A+=0A+=20=20=20For=20the=20case=20of=20= VxWorks=20prior=20to=207=20below,=20we=20have:=0A+=0A+=20=20=20=20=20= #define=20SYSROOT_HEADERS_SUFFIX_SPEC=20"%{mrtp:/usr/h;:/h}"=0A+=0A+=20=20= =20This=20results=20in=0A+=0A+=20=20=20=20=20$build_sysroot/h=20=20=20=20= =20--->=20$prefix/include-fixed=0A+=20=20=20=20=20$build_sysroot/usr/h=20= --->=20$prefix/include-fixed/mrtp=20for=20-mrtp=0A+=0A+=20=20=20This=20= is=20very=20different=20from=20what=20we'd=20get=20without=20a=20= headers_suffix,=0A+=20=20=20which=20would=20be:=0A+=0A+=20=20=20=20=20= $build_sysroot=20=20=20=20=20--->=20$prefix/include-fixed/h=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20/usr/h=0A= +=0A+=20=20=20=46rom=20(say)=20#include=20,=20we=20would=20= find=20the=20fixed=20version=0A+=20=20=20in=20the=20first=20case,=20not=20= in=20the=20second.=20=20*/=0A=20=0A=20/*=20Since=20we=20provide=20a=20= default=20-isystem,=20expand=20-isystem=20on=20the=20command=0A-=20=20=20= line=20early.=20=20*/=0A+=20=20=20line=20early.=20=20Then=20restrict=20= the=20amount=20of=20references=20we=20add=20when=20compiling=0A+=20=20=20= self-tests,=20as=20these=20may=20be=20run=20in=20contexts=20where=20the=20= VxWorks=20environment=0A+=20=20=20isn't=20available.=20=20*/=0A=20=0A-/*=20= Self-tests=20may=20be=20run=20in=20contexts=20where=20the=20VxWorks=20= environment=20isn't=0A-=20=20=20available.=20=20Prevent=20attempts=20at=20= designating=20the=20location=20of=20runtime=20header=0A-=20=20=20files,=20= libraries=20or=20startfiles,=20which=20would=20fail=20on=20unset=20= environment=0A-=20=20=20variables=20and=20aren't=20needed=20for=20such=20= tests.=20=20*/=0A=20#if=20TARGET_VXWORKS7=0A=20=0A+/*=20We=20arrange=20= not=20rely=20on=20fixed=20includes=20for=20vx7=20and=20the=20headers=20= spread=20over=0A+=20=20=20common=20kernel/rtp=20directories=20in=20= addition=20to=20specific=20ones=20for=20each=20mode.=0A+=20=20=20Setup=20= sysroot_headers_suffix_spec=20to=20deal=20with=20kernel/rtp=20= distinction.=20=20*/=0A+=0A+#undef=20SYSROOT_HEADERS_SUFFIX_SPEC=0A= +#define=20SYSROOT_HEADERS_SUFFIX_SPEC=20"%{mrtp:/usr/h;:/krnl/h}"=0A+=0A= =20#undef=20VXWORKS_ADDITIONAL_CPP_SPEC=0A=20#define=20= VXWORKS_ADDITIONAL_CPP_SPEC=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20\=0A=20=20"%{!nostdinc:%{!fself-test=3D*:=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20\=0A=20=20=20= =20=20%{isystem*}=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20\=0A-=20= =20=20=20%{mrtp:=20-idirafter=20%:getenv(VSB_DIR=20/h)=20=20=20=20=20=20=20= =20=20=20=20=20=20\=0A-=20=20=20=20=20=20=20=20=20=20=20=20-idirafter=20= %:getenv(VSB_DIR=20/share/h)=20=20=20=20=20=20=20\=0A-=20=20=20=20=20=20=20= =20=20=20=20=20-idirafter=20%:getenv(VSB_DIR=20/usr/h/public)=20=20\=0A-=20= =20=20=20=20=20=20=20=20=20=20=20-idirafter=20%:getenv(VSB_DIR=20/usr/h)=20= =20=20=20=20=20=20=20=20\=0A-=20=20=20=20=20=20;:=20=20=20=20-idirafter=20= %:getenv(VSB_DIR=20/h)=20=20=20=20=20=20=20=20=20=20=20=20=20\=0A-=20=20=20= =20=20=20=20=20=20=20=20=20-idirafter=20%:getenv(VSB_DIR=20/share/h)=20=20= =20=20=20=20=20\=0A-=20=20=20=20=20=20=20=20=20=20=20=20-idirafter=20= %:getenv(VSB_DIR=20/krnl/h/system)=20\=0A-=20=20=20=20=20=20=20=20=20=20=20= =20-idirafter=20%:getenv(VSB_DIR=20/krnl/h/public)}}}"=0A+=20=20=20=20= -idirafter=20%:getenv(VSB_DIR=20/h)=20=20\=0A+=20=20=20=20-idirafter=20= %:getenv(VSB_DIR=20/share/h)=20=20\=0A+=20=20=20=20-idirafter=20=3D/system= =20\=0A+=20=20=20=20-idirafter=20=3D/public=20\=0A+=20=20}}"=0A=20=0A=20= #else=20/*=20TARGET_VXWORKS7=20*/=0A=20=0A+/*=20Prior=20to=20vx7,=20rtp=20= and=20kernel=20headers=20are=20fairly=20segregated=20and=20fixincludes=0A= +=20=20=20is=20needed=20on=20each=20set=20of=20headers=20to=20cope=20= with=20expectations=20of=20not=20so=20old=0A+=20=20=20libstdc++.=20=20A=20= perfect=20use=20case=20for=20sysroot_headers_suffix.=20=20*/=0A+=0A= +#undef=20SYSROOT_HEADERS_SUFFIX_SPEC=0A+#define=20= SYSROOT_HEADERS_SUFFIX_SPEC=20"%{mrtp:/usr/h;:/h}"=0A+=0A=20#undef=20= VXWORKS_ADDITIONAL_CPP_SPEC=0A=20#define=20VXWORKS_ADDITIONAL_CPP_SPEC=09= =09\=0A=20=20"%{!nostdinc:%{!fself-test=3D*:=09=09=09\=0A=20=20=20=20=20= %{isystem*}=09=09=09=09=09\=0A-=20=20=20=20%{mrtp:=20-idirafter=20= %:getenv(WIND_USR=20/h)=09\=0A-=09=20=20=20=20-idirafter=20= %:getenv(WIND_USR=20/h/wrn/coreip)=20\=0A-=20=20=20=20=20=20;:=20=20=20=20= -idirafter=20%:getenv(WIND_BASE=20/target/h)=20\=0A-=09=20=20=20=20= -idirafter=20%:getenv(WIND_BASE=20/target/h/wrn/coreip)=20\=0A-}}}"=0A+=20= =20=20=20-idirafter=20=3D/wrn/coreip=20\=0A+=20=20}}"=0A=20=0A=20#endif=0A= =20=0A@@=20-119,8=20+144,7=20@@=20along=20with=20GCC;=20see=20the=20file=20= COPYING3.=20=20If=20not=20see=0A=20=0A=20#if=20TARGET_VXWORKS7=0A=20= #undef=20=20STARTFILE_PREFIX_SPEC=0A-#define=20STARTFILE_PREFIX_SPEC=20\=0A= -=20=20"%{!fself-test=3D*:%:getenv(VSB_DIR=20/usr/lib/common)}"=0A= +#define=20STARTFILE_PREFIX_SPEC=20"/usr/lib/common"=0A=20#define=20= TLS_SYM=20"-u=20__tls__"=0A=20#else=0A=20#define=20TLS_SYM=20""=0Adiff=20= --git=20a/libgcc/config.host=20b/libgcc/config.host=0Aindex=20= bd44f1bbf42..1c1b60cac0b=20100644=0A---=20a/libgcc/config.host=0A+++=20= b/libgcc/config.host=0A@@=20-325,9=20+325,6=20@@=20case=20${host}=20in=0A= =20=20=20tmake_file=3D"vms/t-vms"=0A=20=20=20extra_parts=3D"crt0.o=20= crtbegin.o=20crtbeginS.o=20crtend.o=20crtendS.o"=0A=20=20=20;;=0A= -*-*-vxworks7*)=0A-=20=20tmake_file=3Dt-vxworks7=0A-=20=20;;=0A=20= *-*-vxworksae*)=0A=20=20=20tmake_file=3Dt-vxworksae=0A=20=20=20;;=0Adiff=20= --git=20a/libgcc/config/t-vxworks=20b/libgcc/config/t-vxworks=0Aindex=20= 5f7ced8b561..aa794744976=20100644=0A---=20a/libgcc/config/t-vxworks=0A= +++=20b/libgcc/config/t-vxworks=0A@@=20-13,9=20+13,8=20@@=20= LIB2FUNCS_EXCLUDE=20+=3D=20_clear_cache=0A=20LIBGCC2_INCLUDES=20=3D=20= -nostdinc=20-I.=20\=0A=20=20=20= -I$(MULTIBUILDTOP)../../gcc/include-fixed$(MULTISUBDIR)=20\=0A=20=20=20= -I$(MULTIBUILDTOP)../../gcc/include=20\=0A-=20=20`case=20"/$(MULTIDIR)"=20= in=20\=0A-=20=20=20=20=20*/mrtp*)=20echo=20-I$(WIND_USR)/h=20= -I$(WIND_USR)/h/wrn/coreip=20;;=20\=0A-=20=20=20=20=20*)=20echo=20= -I$(WIND_BASE)/target/h=20-I$(WIND_BASE)/target/h/wrn/coreip=20;;=20\=0A= -=20=20=20esac`=0A+=20=20$(if=20$(findstring=20vxworks7,=20= $(target_noncanonical)),=20\=0A+=20=20=20=20-I$(VSB_DIR)/h=20= -I$(VSB_DIR)/share/h=20-I=3D/system=20-I=3D/public,=20\=0A+=20=20=20=20= -I=3D/=20-I=3D/wrn/coreip)=0A=20=0A=20CRTSTUFF_T_CFLAGS=20=3D=20= $(LIBGCC2_INCLUDES)=0Adiff=20--git=20a/libgcc/config/t-vxworks7=20= b/libgcc/config/t-vxworks7=0Adeleted=20file=20mode=20100644=0Aindex=20= 180784bf3a1..00000000000=0A---=20a/libgcc/config/t-vxworks7=0A+++=20= /dev/null=0A@@=20-1,22=20+0,0=20@@=0A-#=20Don't=20build=20libgcc.a=20= with=20debug=20info=0A-LIBGCC2_DEBUG_CFLAGS=20=3D=0A-=0A-#=20We=20= provide=20our=20own=20implementation=20for=20__clear_cache,=20using=20a=0A= -#=20VxWorks=20specific=20entry=20point.=0A-LIB2FUNCS_EXCLUDE=20+=3D=20= _clear_cache=0A-=0A-#=20This=20ensures=20that=20the=20correct=20target=20= headers=20are=20used;=20some=20VxWorks=0A-#=20system=20headers=20have=20= names=20that=20collide=20with=20GCC's=20internal=20(host)=0A-#=20= headers,=20e.g.=20regs.h.=20Make=20sure=20the=20local=20libgcc=20headers=20= still=0A-#=20prevail=20(e.g.=20unwind.h),=20and=20that=20gcc=20provided=20= header=20files=20intended=0A-#=20to=20be=20user=20visible=20eventually=20= are=20visible=20as=20well.=0A-LIBGCC2_INCLUDES=20=3D=20-nostdinc=20-I.=20= \=0A-=20=20-I$(MULTIBUILDTOP)../../gcc/include-fixed$(MULTISUBDIR)=20\=0A= -=20=20-I$(VSB_DIR)/h=20-I$(VSB_DIR)/share/h=20\=0A-=20=20= -I$(MULTIBUILDTOP)../../gcc/include=20\=0A-=20=20`case=20"/$(MULTIDIR)"=20= in=20\=0A-=20=20=20=20=20=20*/mrtp*)=20echo=20-I$(VSB_DIR)/usr/h/public=20= -I$(VSB_DIR)/usr/h=20;;=20\=0A-=20=20=20=20=20=20*)=20echo=20= -I$(VSB_DIR)/krnl/h/system=20-I$(VSB_DIR)/krnl/h/public=20;;=20\=0A-=20=20= =20esac`=0A-=0A-CRTSTUFF_T_CFLAGS=20=3D=20$(LIBGCC2_INCLUDES)=0A--=20=0A= 2.25.1=0A=0A= --Apple-Mail=_C1608FB0-3C10-449A-9FA7-D13014898AD3 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_C1608FB0-3C10-449A-9FA7-D13014898AD3--