AW: [PATCH v3 2/3] amd64: Add to build

Jan.Sommer at dlr.de Jan.Sommer at dlr.de
Tue Feb 11 14:58:58 UTC 2020



> -----Ursprüngliche Nachricht-----
> Von: Joel Sherrill [mailto:joel at rtems.org]
> Gesendet: Dienstag, 11. Februar 2020 14:29
> An: Sommer, Jan
> Cc: Sebastian Huber; rtems-devel at rtems.org
> Betreff: Re: [PATCH v3 2/3] amd64: Add to build
> 
> 
> 
> On Tue, Feb 11, 2020, 7:21 AM <Jan.Sommer at dlr.de> wrote:
> 
> 
> 
> 
> 	> -----Ursprüngliche Nachricht-----
> 	> Von: Sebastian Huber [mailto:sebastian.huber at embedded-brains.de]
> 	> Gesendet: Dienstag, 11. Februar 2020 13:22
> 	> An: Sommer, Jan; devel at rtems.org
> 	> Betreff: Re: [PATCH v3 2/3] amd64: Add to build
> 	>
> 	> On 11/02/2020 13:06, Jan Sommer wrote:
> 	>
> 	> > diff --git a/waf_libbsd.py b/waf_libbsd.py
> 	> > index 84f22b76..3b1f2d16 100644
> 	> > --- a/waf_libbsd.py
> 	> > +++ b/waf_libbsd.py
> 	> > @@ -197,6 +197,10 @@ class Builder(builder.ModuleManager):
> 	> >           if 'cpu-include-paths' in config:
> 	> >               cpu = bld.get_env()['RTEMS_ARCH']
> 	> >               if cpu == "i386":
> 	> > +                cpu = 'i386'
> 	> What is the purpose of this assignment?
> 
> 	Sorry, I deleted this, but must have recovered it when preparing the
> patchset.
> 
> 	> > +                includes += ['freebsd/sys/x86/include']
> 	> > +            if cpu == "x86_64":
> 	> > +                cpu = 'amd64'
> 	> >                   includes += ['freebsd/sys/x86/include']
> 	> >               for i in config['cpu-include-paths']:
> 	> >                   includes += [i.replace('@CPU@', cpu)]
> 	> I am not sure what this should do. Here cpu x86_64 seems to be
> renamed
> 	> to amd64? Should it be named amd64 in general?
> 
> 	The problem is that the RTEMS_ARCH and the compiler prefix is
> x86_64, however in FreeBSD the related files are in amd64 subdirectories.
> 	libbsd.py uses @CPU@ to create the architecture specific include
> directories which then yields sys/x86_64/include for example, but should create
> sys/amd64/include.
> 
> 	Before my last patch set,  cpu was overridden to x86 for i386, so I
> thought doing something similar saves me the trouble with the include
> directories here.
> 	Do you maybe have a more elegant solution?
> 
> 
> 
> The GNU target for the toolchain is x86_64 for 64 but tools. I didn't invent that.
> This looks like a reasonable accommodation.
> 
> I want to make sure I understand. This is still the 32 bit pcx86 BSP and toolchain
> but it has to use the amd64 Freebsd directory for some support code in libbsd.

Sorry for the confusion. No, this is a patch for the rtems-libbsd library for the RTEMS amd64 BSP.
Of course, given that the amd64 BSP is currently in a very rudimentary state, the created binaries won't run.
I just had some time over the Christmas break and followed the guide to setup a development toolchain for the amd64 BSP and played around with rtems-libbsd.
So I thought it would be a waste to wait until I have forgotten everything again, hence this patch set.

The previous patch set for i386 is the one which is targeted for the pcx86 BSP family and should be a bit more relevant.
Figuring out the include directory situation of FreeBSD was a bit tricky a first as it collects shared files for i386 and x86_64 in "x86" subdirectories, but once this worked for i386 getting support for amd64 was then quite straight forward.

For me it was also a tutorial to get familiar with rtems-libbsd.

> This sounds like the same type of unfortunate hack required if we integrated
> code that use x86 or ppc for directory names.
> 
> --joel
> 
> 
> 
> 	_______________________________________________
> 	devel mailing list
> 	devel at rtems.org
> 	http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list