source: rtems/bsps/powerpc/include/rtems/powerpc/debugmod.h @ 2afb22b

5
Last change on this file since 2afb22b was 2afb22b, checked in by Chris Johns <chrisj@…>, on 12/23/17 at 07:18:56

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

  • Property mode set to 100644
File size: 4.0 KB
Line 
1/*  debugmod.h
2 *
3 *  This file contains definitions for the IBM/Motorola PowerPC
4 *  family members.
5 *
6 *  Author:     Andrew Bray <andy@i-cubed.co.uk>
7 *
8 *  COPYRIGHT (c) 1995 by i-cubed ltd.
9 *
10 *  MPC860 support code was added by Jay Monkman <jmonkman@frasca.com>
11 *  MPC8260 support added by Andy Dachs <a.dachs@sstl.co.uk>
12 *  Surrey Satellite Technology Limited
13 *
14 *  To anyone who acknowledges that this file is provided "AS IS"
15 *  without any express or implied warranty:
16 *      permission to use, copy, modify, and distribute this file
17 *      for any purpose is hereby granted without fee, provided that
18 *      the above copyright notice and this notice appears in all
19 *      copies, and that the name of i-cubed limited not be used in
20 *      advertising or publicity pertaining to distribution of the
21 *      software without specific, written prior permission.
22 *      i-cubed limited makes no representations about the suitability
23 *      of this software for any purpose.
24 *
25 *  Derived from c/src/exec/cpu/no_cpu/no_cpu.h:
26 *
27 *  COPYRIGHT (c) 1989-1997.
28 *  On-Line Applications Research Corporation (OAR).
29 *
30 *  The license and distribution terms for this file may in
31 *  the file LICENSE in this distribution or at
32 *  http://www.rtems.org/license/LICENSE.
33 *
34 *
35 * Note:
36 *      This file is included by both C and assembler code ( -DASM )
37 */
38
39/*
40 * FIXME: This file is not used anywhere inside of RTEMS source-tree.
41 * Notify OAR if you actually use it, otherwise it might be removed in
42 * future versions of RTEMS
43 */
44
45#ifndef _RTEMS_POWERPC_DEBUGMOD_H
46#define _RTEMS_POWERPC_DEBUGMOD_H
47
48#warning "please read the FIXME inside of this file"
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54/*
55 *  This file contains the information required to build
56 *  RTEMS for a particular member of the PowerPC family.  It does
57 *  this by setting variables to indicate which implementation
58 *  dependent features are present in a particular member
59 *  of the family.
60 *
61 *  The following architectural feature definitions are defaulted
62 *  unless specifically set by the model definition:
63 *
64 *    + PPC_DEBUG_MODEL          - PPC_DEBUG_MODEL_STANDARD
65 */
66
67/*
68 *  Define the debugging assistance models found in the PPC family.
69 *
70 *  Standard:         single step and branch trace
71 *  Single Step Only: single step only
72 *  IBM 4xx:          debug exception
73 */
74
75#define PPC_DEBUG_MODEL_STANDARD         1
76#define PPC_DEBUG_MODEL_SINGLE_STEP_ONLY 2
77#define PPC_DEBUG_MODEL_IBM4xx           3
78
79#elif defined(ppc403) || defined(ppc405) || defined(ppc440)
80
81#define PPC_DEBUG_MODEL          PPC_DEBUG_MODEL_IBM4xx
82
83#elif defined(ppc601)
84
85#define PPC_DEBUG_MODEL PPC_DEBUG_MODEL_SINGLE_STEP_ONLY
86
87#endif
88
89/*
90 *  Use the default debug scheme defined in the architectural specification
91 *  if another model has not been specified.
92 */
93
94#ifndef PPC_DEBUG_MODEL
95#define PPC_DEBUG_MODEL PPC_DEBUG_MODEL_STANDARD
96#endif
97
98/*
99 *  Interrupt/exception MSR bits set as defined on p. 2-20 in "The Programming
100 *  Environments" and the manuals for various PPC models.
101 */
102
103#if (PPC_DEBUG_MODEL == PPC_DEBUG_MODEL_STANDARD)
104#define PPC_MSR_DE       0x000000000 /* bit 22 - debug exception enable */
105#define PPC_MSR_BE       0x000000200 /* bit 22 - branch trace enable */
106#define PPC_MSR_SE       0x000000400 /* bit 21 - single step trace enable */
107#elif (PPC_DEBUG_MODEL == PPC_DEBUG_MODEL_SINGLE_STEP_ONLY)
108#define PPC_MSR_DE       0x000000000 /* bit 22 - debug exception enable */
109#define PPC_MSR_BE       0x000000200 /* bit 22 - branch trace enable */
110#define PPC_MSR_SE       0x000000000 /* bit 21 - single step trace enable */
111#elif (PPC_DEBUG_MODEL == PPC_DEBUG_MODEL_IBM4xx)
112#define PPC_MSR_DE       0x000000200 /* bit 22 - debug exception enable */
113#define PPC_MSR_BE       0x000000000 /* bit 22 - branch trace enable */
114#define PPC_MSR_SE       0x000000000 /* bit 21 - single step trace enable */
115#else
116#error "MSR constants -- unknown PPC_DEBUG_MODEL!!"
117#endif
118
119#ifdef __cplusplus
120}
121#endif
122
123#endif /* _RTEMS_POWERPC_DEBUGMOD_H */
124/* end of include file */
Note: See TracBrowser for help on using the repository browser.