[llvmlinux] [PATCH 0/2] Make it possible to move state/ directory and support Malta's core board concept.

Daniel Sanders Daniel.Sanders at imgtec.com
Wed Aug 19 10:54:51 UTC 2015


On Tue, Aug 18, 2015 at 1:03 PM, Daniel Sanders <daniel.sanders at imgtec.com<mailto:daniel.sanders at imgtec.com>> wrote:
> > Malta is a development kit with a swappable 'core board'. This isn't represented
> > in the current build system since we've only supported a generic MIPS32r2 so
> > far. This patch adds support for the core boards concept by adding
> > subdirectories to the malta target for each core board and adds the I6400 core
> > board which will exercise the MIPS32r6 (and later the MIPS64r6) portions of the
> > mips arch.
> >
> > This required an all targets change to allow having state/ directories one level
> deeper so I thought I ought to have it reviewed before pushing.
>
> Hi Daniel,
>
> We need such feature for other targets as well. Would be useful to create
> subtargets, save space and organize better.
>
> But is there any other reason to create one more level? I thought this could
> be done in the 'targets' folder directly. You might have a reason to not do so
> that I would like to understand before having an opinion. Normally I would
> avoid adding a level on the build system.
>
> Regards,
> Vinicius
Organization was the main reason for the extra directory level. It made sense to me to keep Malta-related things in one place and it also provided an obvious home for the common parts of the Makefile (targets/malta/malta-common.mk).
We also use LLVMLinux as a big test case for LLVM's integrated assembler so there's a good possibility that we will end up with several core boards in the long run. The major ISA groups (MIPS32R2, MIPS64R2, MIPS32R6, MIPS64R6, microMIPS, microMIPSR6) seem the most likely to be needed at some point and within those there's quite a lot of assembler-relevant variation. For example, the li/dli (load-immediate), and la/dla (load-address) macros change behaviour depending on which of the three ABI's are in use.

Organization aside, having the malta subtargets side by side (e.g. targets/{malta-big-endian,malta-little-endian,malta-i6400-big-endian,…}) can do everything the proposed layout can but lacks somewhere to put the common parts. We'd either have to duplicate the Makefile for each target or pick one subtarget to house malta-common.mk and have the others include it. I decided against the duplication for maintenance reasons and it felt wrong for one subtarget to include files from a sibling.

From: Vinicius Tinti [mailto:viniciustinti at gmail.com]
Sent: 19 August 2015 01:43
To: Daniel Sanders
Cc: llvmlinux
Subject: Re: [llvmlinux] [PATCH 0/2] Make it possible to move state/ directory and support Malta's core board concept.

On Tue, Aug 18, 2015 at 1:03 PM, Daniel Sanders <daniel.sanders at imgtec.com<mailto:daniel.sanders at imgtec.com>> wrote:
Malta is a development kit with a swappable 'core board'. This isn't represented
in the current build system since we've only supported a generic MIPS32r2 so
far. This patch adds support for the core boards concept by adding
subdirectories to the malta target for each core board and adds the I6400 core
board which will exercise the MIPS32r6 (and later the MIPS64r6) portions of the
mips arch.

This required an all targets change to allow having state/ directories one level
deeper so I thought I ought to have it reviewed before pushing.

Hi Daniel,
We need such feature for other targets as well. Would be useful to create
subtargets, save space and organize better.

But is there any other reason to create one more level? I thought this could
be done in the 'targets' folder directly. You might have a reason to not do so
that I would like to understand before having an opinion. Normally I would
avoid adding a level on the build system.
Regards,
Vinicius

Daniel Sanders (2):
  Put state files in ${STATEDIR}
  [mips][malta] Added support for core boards and I6400.

 .gitignore                                         |   16 +
 arch/all/all.mk<http://all.mk>                                    |   48 +-
 arch/all/quilt.mk<http://quilt.mk>                                  |    6 +-
 .../codescape-sdk-img/codescape-sdk-img.mk<http://codescape-sdk-img.mk>         |   69 +
 arch/mips/toolchain/toolchain.mk<http://toolchain.mk>                   |    5 +
 targets/beaglebone/Makefile                        |    4 +-
 targets/cubieboard/Makefile                        |    8 +-
 targets/for-linus/Makefile                         |    6 +-
 targets/for-russel/Makefile                        |    6 +-
 targets/i586/Makefile                              |    6 +-
 targets/ifc6410-linaro/Makefile                    |    6 +-
 targets/ifc6410/Makefile                           |    6 +-
 targets/malta/Makefile                             |   98 +-
 targets/malta/config_malta_big                     | 2566 --------------------
 targets/malta/config_malta_little                  | 2566 --------------------
 targets/malta/default-big-endian/Makefile          |   31 +
 targets/malta/default-big-endian/config            | 2566 ++++++++++++++++++++
 targets/malta/default-little-endian/Makefile       |   31 +
 targets/malta/default-little-endian/config         | 2566 ++++++++++++++++++++
 targets/malta/i6400-big-endian/Makefile            |   34 +
 targets/malta/i6400-big-endian/config              |  194 ++
 targets/malta/i6400-little-endian/Makefile         |   31 +
 targets/malta/i6400-little-endian/config           |  193 ++
 targets/malta/malta-common.mk<http://malta-common.mk>                      |  124 +
 targets/msm/Makefile                               |    4 +-
 targets/nexus4/Makefile                            |    4 +-
 targets/nexus5/Makefile                            |    4 +-
 targets/nexus7/Makefile                            |    4 +-
 targets/panda-linaro/Makefile                      |    8 +-
 targets/rpi/Makefile                               |    4 +-
 targets/rpi2/Makefile                              |    4 +-
 targets/template/Makefile                          |    4 +-
 targets/vexpress/Makefile                          |   32 +-
 targets/vexpress64/Makefile                        |    8 +-
 targets/x86_64-linux-next/Makefile                 |   12 +-
 targets/x86_64/Makefile                            |   12 +-
 targets/x86_64_tiny/Makefile                       |   12 +-
 37 files changed, 5972 insertions(+), 5326 deletions(-)
 create mode 100644 arch/mips/toolchain/codescape-sdk-img/codescape-sdk-img.mk<http://codescape-sdk-img.mk>
 delete mode 100644 targets/malta/config_malta_big
 delete mode 100644 targets/malta/config_malta_little
 create mode 100644 targets/malta/default-big-endian/Makefile
 create mode 100644 targets/malta/default-big-endian/config
 create mode 100644 targets/malta/default-little-endian/Makefile
 create mode 100644 targets/malta/default-little-endian/config
 create mode 100644 targets/malta/i6400-big-endian/Makefile
 create mode 100644 targets/malta/i6400-big-endian/config
 create mode 100644 targets/malta/i6400-little-endian/Makefile
 create mode 100644 targets/malta/i6400-little-endian/config
 create mode 100644 targets/malta/malta-common.mk<http://malta-common.mk>

--
2.1.4

_______________________________________________
LLVMLinux mailing list
LLVMLinux at lists.linuxfoundation.org<mailto:LLVMLinux at lists.linuxfoundation.org>
https://lists.linuxfoundation.org/mailman/listinfo/llvmlinux



--
Simplicity is the ultimate sophistication
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/llvmlinux/attachments/20150819/0aed6155/attachment-0001.html>


More information about the LLVMLinux mailing list