| 1 | /* Copyright IBM 1995,2003 */ |
|---|
| 2 | /* $Id: site.mcr.proto,v 1.535.2.13 2006/10/26 05:44:16 mcnabb Exp $ */ |
|---|
| 3 | |
|---|
| 4 | /******************************************************************************/ |
|---|
| 5 | /* Platform and Architecture Defines: */ |
|---|
| 6 | /* */ |
|---|
| 7 | /* Define the platform (operating system) and architecture (instruction set) */ |
|---|
| 8 | /* settings. Only one platform and one architecture may be defined. Not all */ |
|---|
| 9 | /* combinations are supported. */ |
|---|
| 10 | /* */ |
|---|
| 11 | /* Supported platform settings: */ |
|---|
| 12 | /* */ |
|---|
| 13 | /* GPFS_AIX */ |
|---|
| 14 | /* GPFS_LINUX */ |
|---|
| 15 | /* */ |
|---|
| 16 | /* Supported architecture settings: */ |
|---|
| 17 | /* */ |
|---|
| 18 | /* GPFS_ARCH_I386 */ |
|---|
| 19 | /* GPFS_ARCH_IA64 */ |
|---|
| 20 | /* GPFS_ARCH_POWER */ |
|---|
| 21 | /* GPFS_ARCH_PPC64 */ |
|---|
| 22 | /* GPFS_ARCH_X86_64 */ |
|---|
| 23 | /* */ |
|---|
| 24 | /******************************************************************************/ |
|---|
| 25 | #define GPFS_LINUX |
|---|
| 26 | #define GPFS_ARCH_I386 |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | #ifdef GPFS_LINUX |
|---|
| 30 | /*****************************************************/ |
|---|
| 31 | /* Linux portability layer defines begin. */ |
|---|
| 32 | /* Customer editable portion of config file. */ |
|---|
| 33 | /*****************************************************/ |
|---|
| 34 | |
|---|
| 35 | /* use #define SRC_BUILD to build the open source kernel module */ |
|---|
| 36 | #define SRC_BUILD_PLACEHOLDER |
|---|
| 37 | |
|---|
| 38 | /******************************************************************************/ |
|---|
| 39 | /* Linux Distribution Defines: */ |
|---|
| 40 | /* */ |
|---|
| 41 | /* Define the Linux distribution setting. Only one Linux distribution may be */ |
|---|
| 42 | /* defined. */ |
|---|
| 43 | /* */ |
|---|
| 44 | /* Supported Distribution settings: */ |
|---|
| 45 | /* */ |
|---|
| 46 | /* REDHAT_LINUX */ |
|---|
| 47 | /* REDHAT_AS_LINUX */ |
|---|
| 48 | /* SUSE_LINUX */ |
|---|
| 49 | /* KERNEL_ORG_LINUX */ |
|---|
| 50 | /* */ |
|---|
| 51 | /* Select REDHAT_AS_LINUX for: */ |
|---|
| 52 | /* - RedHat Advanced Server */ |
|---|
| 53 | /* - RedHat Enterprise Linux (AS|ES|WS). */ |
|---|
| 54 | /* */ |
|---|
| 55 | /* Select REDHAT_LINUX for RedHat professional */ |
|---|
| 56 | /* */ |
|---|
| 57 | /* Select SUSE_LINUX for SuSE Enterprise Server */ |
|---|
| 58 | /* */ |
|---|
| 59 | /******************************************************************************/ |
|---|
| 60 | LINUX_DISTRIBUTION = KERNEL_ORG_LINUX |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | /******************************************************************************/ |
|---|
| 64 | /* Linux Distribution Level Defines: */ |
|---|
| 65 | /* */ |
|---|
| 66 | /* Define the Linux distribution level setting. Only one Linux distribution */ |
|---|
| 67 | /* level may be defined. */ |
|---|
| 68 | /* */ |
|---|
| 69 | /* NOTE: */ |
|---|
| 70 | /* */ |
|---|
| 71 | /* The DISTRIBUTION_LEVEL may be required if the patches for a common */ |
|---|
| 72 | /* LINUX_KERNEL_VERSION diverge across a LINUX_DISTRIBUTION. For instance, */ |
|---|
| 73 | /* RedHat 8 and RedHat 9 have different kernel patches for a similar version */ |
|---|
| 74 | /* number kernel. For this example, LINUX_DISTRIBUTION_LEVEL would be set to */ |
|---|
| 75 | /* "80" for RedHat 8 and "90" for RedHat 9. |
|---|
| 76 | /* */ |
|---|
| 77 | /******************************************************************************/ |
|---|
| 78 | #define LINUX_DISTRIBUTION_LEVEL 90 |
|---|
| 79 | |
|---|
| 80 | |
|---|
| 81 | /******************************************************************************/ |
|---|
| 82 | /* Linux Kernel Version Defines: */ |
|---|
| 83 | /* */ |
|---|
| 84 | /* Define the Linux kernel version and kernel includes directory settings. */ |
|---|
| 85 | /* Only one Linux kernel version and one kernel includes directory may be */ |
|---|
| 86 | /* defined. */ |
|---|
| 87 | /* */ |
|---|
| 88 | /* The Linux kernel version is determined from the first four components of */ |
|---|
| 89 | /* the kernel string. It is important to note that the second, third and */ |
|---|
| 90 | /* fourth components are specified with two digits. Any component less than */ |
|---|
| 91 | /* 10 must be preceded by a '0', while any component greater than or equal to */ |
|---|
| 92 | /* 100 should specify '99'. */ |
|---|
| 93 | /* */ |
|---|
| 94 | /* Examples: */ |
|---|
| 95 | /* */ |
|---|
| 96 | /* 2.4.18-21 would be 2041821 */ |
|---|
| 97 | /* 2.4.21-111 would be 2042199 */ |
|---|
| 98 | /* 2.6.5-7.139 would be 2060507 */ |
|---|
| 99 | /* */ |
|---|
| 100 | /* The kernel includes directory is where GPFS will find the kernel headers */ |
|---|
| 101 | /* for the kernel specified by the LINUX_KERNEL_VERSION define. The kernel */ |
|---|
| 102 | /* includes location varies by Linux distribution. */ |
|---|
| 103 | /* */ |
|---|
| 104 | /* Examples: */ |
|---|
| 105 | /* */ |
|---|
| 106 | /* /lib/modules/`uname -r`/build/include */ |
|---|
| 107 | /* /lib/modules/`uname -r`/source/include */ |
|---|
| 108 | /* /usr/src/linux/include */ |
|---|
| 109 | /* */ |
|---|
| 110 | /******************************************************************************/ |
|---|
| 111 | #define LINUX_KERNEL_VERSION 2062003 |
|---|
| 112 | KERNEL_HEADER_DIR = /usr/src/linux-source-2.6.20/include |
|---|
| 113 | |
|---|
| 114 | /******************************************************************************/ |
|---|
| 115 | /* Linux Build Directory (Needed for Linux 2.6 kernel only) */ |
|---|
| 116 | /* */ |
|---|
| 117 | /* For Linux kernel version 2.6, kernel build directory needs to be specified */ |
|---|
| 118 | /* as well. */ |
|---|
| 119 | /* If you are running a vanilla kernel, where in the headers and the build */ |
|---|
| 120 | /* directories are in the standard place (i.e. under /lib/modules) then */ |
|---|
| 121 | /* running "make Autoconfig" will set the correct values for */ |
|---|
| 122 | /* KERNEL_BUILD_DIR variable. */ |
|---|
| 123 | /* */ |
|---|
| 124 | /* The kernel build directory is where the kernel build tools reside. */ |
|---|
| 125 | /* These tools are required to build the GPFS modules for Linux. */ |
|---|
| 126 | /* Examples: */ |
|---|
| 127 | /* /lib/modules/`uname -r`/build */ |
|---|
| 128 | /* */ |
|---|
| 129 | /******************************************************************************/ |
|---|
| 130 | KERNEL_BUILD_DIR = /lib/modules/2.6.20.3-ubuntu1/build |
|---|
| 131 | |
|---|
| 132 | /* Flags for building with desired Linux kernel patches. |
|---|
| 133 | * These are patches for specific problems we've discovered |
|---|
| 134 | * with the linux kernel and are providing interim patches |
|---|
| 135 | * for. Each patch is described below and the desired patches |
|---|
| 136 | * should be uncommented under LINUX_PATCH_DEFINES. |
|---|
| 137 | * |
|---|
| 138 | * -DMMAP_LINUX_PATCH Required for use of mmapped writes. |
|---|
| 139 | * |
|---|
| 140 | * Descriptions and downloads for these patches may be found at |
|---|
| 141 | * http://sourceforge.net/tracker/index.php?func=detail&aid=1153778&group_id=130828&atid=719124 |
|---|
| 142 | */ |
|---|
| 143 | LINUX_PATCH_DEFINES = \ |
|---|
| 144 | /* -DMMAP_LINUX_PATCH */ |
|---|
| 145 | |
|---|
| 146 | /*****************************************************/ |
|---|
| 147 | /* Linux portability layer defines end. */ |
|---|
| 148 | /* Everything below here is irrelevent to customer */ |
|---|
| 149 | /* compiles of the portability layer. */ |
|---|
| 150 | /*****************************************************/ |
|---|
| 151 | #endif /* GPFS_LINUX */ |
|---|
| 152 | |
|---|
| 153 | /* Descriptions of variables used by the build process: |
|---|
| 154 | |
|---|
| 155 | The following variables are lists available to all makefiles: |
|---|
| 156 | DESTDIR Root of the ts directory in the build tree. |
|---|
| 157 | CDEBUGFLAGS Passed to all compiles of code that goes in mmfsd |
|---|
| 158 | or other process-level code. Empty by default; |
|---|
| 159 | intended to be used temporarily within the |
|---|
| 160 | Imakefile in a directory to turn on generation of |
|---|
| 161 | assembly listings, say. |
|---|
| 162 | KCDEBUGFLAGS Passed to all compiles of code that goes in kernel |
|---|
| 163 | extensions. Empty by default. |
|---|
| 164 | OPTFLAGS Compiler optimization flags for daemon code and |
|---|
| 165 | code that is compiled once and bound into both |
|---|
| 166 | the daemon and the kernel. Typical values are -g |
|---|
| 167 | or -O. |
|---|
| 168 | KOPTFLAGS Compiler optimization flags for code used exclusively |
|---|
| 169 | in kernel modules. |
|---|
| 170 | ARCH_DEFINES -D defines describing the machine architecture |
|---|
| 171 | DEFAULT_DEFINES List of -D defines used for shipped product code. |
|---|
| 172 | The complete list of possible -D values is given |
|---|
| 173 | below. |
|---|
| 174 | TEMPSHIP_DEFINES List of -D defines used for debuging, not shipped |
|---|
| 175 | in product code after first few PTFs of new release. |
|---|
| 176 | NEVERSHIP_DEFINES List of -D defines used for testing, never shipped |
|---|
| 177 | in product code. |
|---|
| 178 | SITE_DEFINES List of the complete set of -D defines used by each |
|---|
| 179 | compilation in the build. For testing, this will |
|---|
| 180 | be the concatenation of DEFAULT_DEFINES, |
|---|
| 181 | ARCH_DEFINES, TEMPSHIP_DEFINES, and |
|---|
| 182 | NEVERSHIP_DEFINES. For the shipped product, |
|---|
| 183 | this will just contain DEFAULT_DEFINES and |
|---|
| 184 | ARCH_DEFINES (and TEMPSHIP_DEFINES for a |
|---|
| 185 | little while). |
|---|
| 186 | |
|---|
| 187 | KERNEL_HEADER_DIR Directory where Linux kernel header files are kept |
|---|
| 188 | |
|---|
| 189 | The following variables are either defined or undefined by this file. |
|---|
| 190 | Tests of these are used in Imakefiles to conditionally control which |
|---|
| 191 | lines are processed. For almost all of these there is a |
|---|
| 192 | corresponding -Dxxx that must be specified in SITE_DEFINES. |
|---|
| 193 | |
|---|
| 194 | DMAPI #define this to cause code implementing the DMAPI |
|---|
| 195 | interface to GPFS to be built. Requires -DDMAPI |
|---|
| 196 | in SITE_DEFINES. |
|---|
| 197 | FAR_TRACE #define this to cause calls to the routine that |
|---|
| 198 | actually does TRACEn to be placed far away from |
|---|
| 199 | the tests of whether tracing is enabled. When |
|---|
| 200 | tracing is off, this results in fewer I-cache |
|---|
| 201 | misses, and therefore better performance. Also |
|---|
| 202 | controls several compiler options that are needed |
|---|
| 203 | to get the correct code generated. Cannot be |
|---|
| 204 | used with -g. |
|---|
| 205 | LINUX_KERNEL_VERSION #define this to match the version of the Linux |
|---|
| 206 | include files being used for the applicable |
|---|
| 207 | architecture type. This is always an eight |
|---|
| 208 | digit decimal number. The first four |
|---|
| 209 | digits give the major and minor kernel version |
|---|
| 210 | numbers. For Linux 2.4 these will always be |
|---|
| 211 | 0204, with the leading zero omitted. The next |
|---|
| 212 | two digits give the kernel subversion. The last |
|---|
| 213 | two digits give the patch level. Thus the |
|---|
| 214 | LINUX_KERNEL_VERSION of |
|---|
| 215 | linux-2.4.18-14 is 2041814 |
|---|
| 216 | while |
|---|
| 217 | linux-2.4.19 is 2041900 |
|---|
| 218 | |
|---|
| 219 | The compile-time symbol LINUX_KERNEL_VERSION |
|---|
| 220 | will be set to the same value as the make-time |
|---|
| 221 | symbol LINUX_KERNEL_VERSION. |
|---|
| 222 | The GPFS_KERNEL_VERSION macro uses the same |
|---|
| 223 | encoding of kernel version as does |
|---|
| 224 | LINUX_KERNEL_VERSION, and can be used to |
|---|
| 225 | conditionally compile version dependent code. |
|---|
| 226 | GPROF_DAEMON #define this to compile and link the daemon for |
|---|
| 227 | gprof. Use 'mmfsadm test gprof on|off' to control |
|---|
| 228 | when profiling is enabled. (Not tested in years, |
|---|
| 229 | may not work.) |
|---|
| 230 | TRY_AND_BUY #define this to build a "try and buy" version of |
|---|
| 231 | GPFS with a timeout license key |
|---|
| 232 | MMPMON #define this to build support for MMPMON remote |
|---|
| 233 | performance monitoring services. Requires -DMMPMON |
|---|
| 234 | in SITE_DEFINES. |
|---|
| 235 | MMPMON_CUMULATIVE #define this to build support for MMPMON remote |
|---|
| 236 | performance monitoring cumulative all-time stats. |
|---|
| 237 | Requires -DMMPMON in SITE_DEFINES. |
|---|
| 238 | MMPMON_HISTOGRAMS #define this to build support for MMPMON remote |
|---|
| 239 | performance monitoring latency histogram data. |
|---|
| 240 | Requires -DMMPMON *and* -DMMPMON_HISTOGRAMS |
|---|
| 241 | in SITE_DEFINES. |
|---|
| 242 | EXPORTER_EVENTS #define this to enable the APPEND_EXPORTER_EVENT code |
|---|
| 243 | originally used by the Java GUI |
|---|
| 244 | SMB_LOCKS #define this to add SMB share mode and oplock support |
|---|
| 245 | Requires -DSMB_LOCKS in SITE_DEFINES |
|---|
| 246 | CCL #define this to add support for CIFS Compatibility |
|---|
| 247 | Layer. Requires -DCCL in SITE_DEFINES |
|---|
| 248 | KTRACE #define this to build trace device into Linux |
|---|
| 249 | kernel and allow trace statements in kernel. |
|---|
| 250 | Requires -DKTRACE in SITE_DEFINES |
|---|
| 251 | NO_ASM_UTIL #define this to prevent the use of assembler versions |
|---|
| 252 | of utility routines in classes/basic directory |
|---|
| 253 | CROSS_COMPILE #define this when cross-compiling to avoid running |
|---|
| 254 | tools that must be built for the target system but |
|---|
| 255 | run on the build system (e.g. chksystypes program) |
|---|
| 256 | POLICY #define this to compile the policy library. Use with |
|---|
| 257 | -DPOOLS and -DPOLICY |
|---|
| 258 | NOKREGPARMS #define this to build gpfs compatable for a |
|---|
| 259 | custom built 2.6 kernel with CONFIG_REGPARMS |
|---|
| 260 | turned off. |
|---|
| 261 | |
|---|
| 262 | Descriptions of all -Dxxx values that control building GPFS features. |
|---|
| 263 | To generate optional code add one or more of the following to |
|---|
| 264 | SITE_DEFINES: |
|---|
| 265 | |
|---|
| 266 | Standard system features |
|---|
| 267 | -D__FULL_PROTO Used by AIX header files to ensure that prototypes |
|---|
| 268 | of functions include full parameter list. Needed |
|---|
| 269 | since these functions have a C calling convention and |
|---|
| 270 | thus must always be defined with their full proto. |
|---|
| 271 | -DBLOCK_RESTORE Add support for block level incremental |
|---|
| 272 | backup & restore. |
|---|
| 273 | -DDIO Direct I/O support |
|---|
| 274 | -DDIO_XW Define this to allow direct I/O writes to |
|---|
| 275 | allocate new data blocks rather than falling |
|---|
| 276 | back to normal I/O, provided that write request |
|---|
| 277 | is block-aligned block multiple. DIO will use |
|---|
| 278 | xw byte-range lock rather than whole-file sx |
|---|
| 279 | lock for block-sized I/O. |
|---|
| 280 | -DDISK_LEASE_DMS Add support for a deadman switch. When disk leasing |
|---|
| 281 | is on, a kernel timer will be turned on, to be |
|---|
| 282 | restarted whenever a new lease is obtained. If |
|---|
| 283 | the lease cannot be renewed, and timer expires, |
|---|
| 284 | and there's still some outstanding I/O requests, |
|---|
| 285 | the node is paniced. |
|---|
| 286 | -DDMAPI Activate DMAPI code (also define DMAPI). |
|---|
| 287 | -DDMAPI_MOVERS Activate DMAPI parallel movers code. |
|---|
| 288 | -DDMAPI_PREFETCH_DIRATTRS Active parallel dm_get_dirattr and dm_get_dmattr |
|---|
| 289 | -DLC_FENCING Enable LC fencing of VSD disks |
|---|
| 290 | -DMMAP_DIO Change mmap page-out to use direct I/O to write |
|---|
| 291 | the page if a GPFS data buffer is not available. |
|---|
| 292 | This removes the requirement that read/write |
|---|
| 293 | mapped pages always have a GPFS data buffer to |
|---|
| 294 | back them. Requires -DDIO. |
|---|
| 295 | -DNFS_SKIP_SHRINK_TO_FIT Don't do shrink to fit for NFS when the open |
|---|
| 296 | file is not empty. |
|---|
| 297 | -DPOW2_COND_SHIFT Enable code that implements multiplies and divides |
|---|
| 298 | by shifts when possible. |
|---|
| 299 | -DSANERGY Enable SANergy interfaces. |
|---|
| 300 | -DSFS_PERF_SKIP_SYNC Performance improvement to skip multiple sync calls |
|---|
| 301 | for the same file. |
|---|
| 302 | -DSFS_PERF_USE_SMALL_BUFFER try to use small buffers to avoid reading |
|---|
| 303 | data that might not be referenced. |
|---|
| 304 | -DSMB_LOCKS Add support for SMB open locks and oplocks. |
|---|
| 305 | -DSPAIXLVL=432 AIX level. Must use this option when compiling on |
|---|
| 306 | AIX 4.3.2 (with new compiler). |
|---|
| 307 | -DSPAIXLVL=433 Must use this option when compiling on AIX 4.3.3 |
|---|
| 308 | -DSPAIXLVL=516 Must use this option when compiling on AIX 5.1.6+ |
|---|
| 309 | -DMMPMON Enable MMPMON performance monitoring |
|---|
| 310 | (also enable -DMMPMON.) |
|---|
| 311 | -DMMPMON_CUMULATIVE Enable MMPMON performance monitoring cumulative |
|---|
| 312 | all time stats (also enable -DMMPMON and |
|---|
| 313 | define MMPMON) |
|---|
| 314 | -DMMPMON_DAEMON_PORT Enable code that allows mmpmon/EE connections via |
|---|
| 315 | the standard daemon port. Authentication done by |
|---|
| 316 | llcomm. Compatible with MMPMON_NAMED_SOCKET. |
|---|
| 317 | -DMMPMON_HISTOGRAMS Enable MMPMON performance monitoring latency |
|---|
| 318 | histograms (also enable -DMMPMON and |
|---|
| 319 | define MMPMON + MMPMON_HISTOGRAMS.) |
|---|
| 320 | -DMMPMON_NAMED_SOCKET Enable MMPMON named socket instead of the |
|---|
| 321 | independent EE network port. Mutually exclusive. |
|---|
| 322 | -DMMPMON_RPC Enable MMPMON rpc interface |
|---|
| 323 | -DEXPORTER_EVENTS Enable the APPEND_EXPORTER_EVENT code |
|---|
| 324 | originally used by the Java GUI |
|---|
| 325 | -DFAR_TRACE LINUX: Generate calls to the TRACE subroutine |
|---|
| 326 | out-of-line with respect to the tests of whether |
|---|
| 327 | tracing is enabled. Do not explicitly include |
|---|
| 328 | this in the list of -D options; it will be |
|---|
| 329 | provided automatically if FAR_TRACE or |
|---|
| 330 | KFAR_TRACE is #defined. |
|---|
| 331 | -DFAR_CODE LINUX: Enable the BEGIN_FAR_CODE/END_FAR_CODE macros |
|---|
| 332 | to place arbitrary uncommonly executed code |
|---|
| 333 | out-of-line. Requires -DFAR_TRACE. Do not |
|---|
| 334 | explicitly include this in the list of -D |
|---|
| 335 | options; it will be provided automatically |
|---|
| 336 | if FAR_TRACE or KFAR_TRACE is #defined. |
|---|
| 337 | -DUSE51BREGS AIX: Use AIX 5.1.B register semantics in assembler |
|---|
| 338 | code. Must be turned on for code that will |
|---|
| 339 | run on AIX 5.x. |
|---|
| 340 | -DTSCOMM_SECURITY Enable support for secure network communication. |
|---|
| 341 | -DLIMIT_KSTACKS Generate code that is less efficient in the GPFS |
|---|
| 342 | kernel module, but that uses less kernel stack |
|---|
| 343 | space. Needed on i386 for Linux kernel versions |
|---|
| 344 | at or beyond 2.6.6. |
|---|
| 345 | -DPERF_STATS Additional performance statistics for benchmark runs |
|---|
| 346 | |
|---|
| 347 | Defines for new upcoming features: |
|---|
| 348 | -DCCL Add support for CIFS Compatibility Layer. |
|---|
| 349 | -DEE_WATCHDOG_START Start the EE watchdog thread (checks for anomolies) |
|---|
| 350 | This feature used to be enabled, but since there |
|---|
| 351 | is currently no consumer for its data, it is now |
|---|
| 352 | disabled by default. |
|---|
| 353 | -DNFS4_CLUSTER Add support for NFS Version 4. |
|---|
| 354 | Requires the 2.4.18 nfsv4 kernel. |
|---|
| 355 | -DNFS4_ACL Add support for NFSv4 ACLs. |
|---|
| 356 | -DNFS4_VCM Add support for the AIX VCM (NFSv4 locking) |
|---|
| 357 | |
|---|
| 358 | -DDESCQUORUM_OVERRIDE Add support for manual overrides of the stripe |
|---|
| 359 | group descriptor quorum. |
|---|
| 360 | -DUIDREMAP Enable support for UID remapping in multicluster |
|---|
| 361 | environment. |
|---|
| 362 | -DALLOC_SUM_FILE Enable support allocation summary file |
|---|
| 363 | |
|---|
| 364 | -DCHECK_KXTIMESTAMP Enable code that a) links both mmfsd and mmfs with |
|---|
| 365 | an object that contains a timestamp b) checks very |
|---|
| 366 | early during daemon startup that kernel and userspace |
|---|
| 367 | code have the same timestamp, i.e. the kernel |
|---|
| 368 | extension loaded in memory is from the same build as |
|---|
| 369 | the currently starting daemon. The intent is to |
|---|
| 370 | prevent hard-to-diagnose problems arising (on AIX, |
|---|
| 371 | most often) from having a stale kernel extension |
|---|
| 372 | loaded after installing a new build. Will only be |
|---|
| 373 | enabled in ADE/ODE builds, although CVS builders |
|---|
| 374 | can enable it as well. |
|---|
| 375 | -DPOOLS Add support for multiple disk storage pools. |
|---|
| 376 | -DFILESETS Add support for filesets. |
|---|
| 377 | -DFILESET_QUOTAS Add support for fileset quotas. Must be used with |
|---|
| 378 | FILESETS. |
|---|
| 379 | -DPOLICY Policy language and commands - used with POOLS and FILESETS, prereq |
|---|
| 380 | -DPOLICY_RESTORE Initial support for new RESTORE policy attributes |
|---|
| 381 | -DPOLICY_RESTORE_RULES Add support for new RESTORE policy rules |
|---|
| 382 | -DSINGLE_PORT Enable support for use of a single port number. |
|---|
| 383 | -DTHREADED_RECEIVER Enables multi-threaded receiver code. |
|---|
| 384 | -DNO_XCLUST Avoid sending cross-cluster RPCs between different |
|---|
| 385 | remote clusters |
|---|
| 386 | -DWAIT_FOR_NSD_SERVERS Enables the feature to wait for NSD servers to |
|---|
| 387 | come up on mounts, when cluster is first formed, |
|---|
| 388 | and other select situations (see doc for details.) |
|---|
| 389 | |
|---|
| 390 | Defines for non GA versions of the code but turned on for our web |
|---|
| 391 | based "try and buy" version of GPFS. |
|---|
| 392 | -DTRY_AND_BUY Build a "try and buy" version of |
|---|
| 393 | GPFS with a timeout license key |
|---|
| 394 | |
|---|
| 395 | Defines for Normal testing, not for shipped systems: |
|---|
| 396 | -DDBGASSERTS Generate code for DBGASSERT macros |
|---|
| 397 | -DTRIGGERS Respond to 'test trigger xxx' commands |
|---|
| 398 | -DTRACK_USECOUNT Code to track contributing threads to a stripe |
|---|
| 399 | group's use count. |
|---|
| 400 | -DDIRCHECKASSERTS Check validity of directory disk data structures |
|---|
| 401 | frequently, and assert when an inconsistency is |
|---|
| 402 | found. Expensive, so separated from DBGASSERTS. |
|---|
| 403 | -DPTHREAD_STATS Generate code to count how many times various |
|---|
| 404 | paths are taken through thread, mutex, and |
|---|
| 405 | condition variable code. |
|---|
| 406 | -DNO_ASM_SYNCH Disable implementation of fast versions of mutex |
|---|
| 407 | acquire/release in assembler. Enables trace |
|---|
| 408 | calls and some debugging code under -DDBGASSERTS |
|---|
| 409 | that is not supported by the assembler |
|---|
| 410 | implementation. Required if -DTRACK_RESOURCE_USAGE |
|---|
| 411 | is used. |
|---|
| 412 | -DINSTRUMENT_LOCKS Enable summary lock instrumentation for mutexes |
|---|
| 413 | and lock objects. Requires -DPTHREAD_STATS. |
|---|
| 414 | -DINSTRUMENT_DETAIL_LOCKS |
|---|
| 415 | Also enable per-mutex lock instrumentation. |
|---|
| 416 | Requires -DINSTRUMENT_LOCKS. |
|---|
| 417 | -DTM_DETAIL_STATS Extra counters to track which token prefetches |
|---|
| 418 | are useful and which are not. |
|---|
| 419 | -DVERBOSETRACE Generate code to produce traces for trace levels > 10 |
|---|
| 420 | -DGPFS_FRAME_POINTER Tell GPFS code that -fomit-frame-pointer was not |
|---|
| 421 | specified, so frame pointer is available. Use |
|---|
| 422 | either -fomit-frame-pointer or -DGPFS_FRAME_POINTER |
|---|
| 423 | when defining OPTFLAGS |
|---|
| 424 | -DENTRYEXIT_TRACE Enable routine entry/exit tracing that is controlled |
|---|
| 425 | by mmfsadm trace entryexit <n> |
|---|
| 426 | -DKSTACK_CHECK Keep track of how much kernel stack space is used |
|---|
| 427 | within GPFS kernel modules. Print tracebacks of |
|---|
| 428 | the point of maximum stack usage if it exceeds a |
|---|
| 429 | threshhold. Can only be used on Linux. |
|---|
| 430 | |
|---|
| 431 | Defines for weird test conditions, not normally used: |
|---|
| 432 | -DPOW2_FORCE_SHIFT Do only shifts for some math. Requires that all |
|---|
| 433 | GPFS block sizes be power of 2. |
|---|
| 434 | Since VTS uses 384K blocksize, this is not a |
|---|
| 435 | shipable option. |
|---|
| 436 | -DTIME_MUTEXES Time how long mutexes are held. Summary produced |
|---|
| 437 | by 'mmfsadm dump lstat'. |
|---|
| 438 | Requires -DINSTRUMENT_LOCKS. |
|---|
| 439 | -DGPFS_PRINTF On Linux, send trace output to the console via printk |
|---|
| 440 | instead of collecting trace output using ltrace. |
|---|
| 441 | (requires GPFS_LINUX). |
|---|
| 442 | -DTSCAN Enable trace points used by the tscan utility to |
|---|
| 443 | measure CPU usage by system call. |
|---|
| 444 | -DTRACK_RESOURCE_USAGE |
|---|
| 445 | Keep track of resources (locks, mutexes, buffers, |
|---|
| 446 | threads, etc.) held by a thread and verify that |
|---|
| 447 | resources are acquired in a consistent order. |
|---|
| 448 | Requires -DNO_ASM_SYNCH. |
|---|
| 449 | -DSUPPORT_FOR_DOS_STATFS Hack for DOS client fsstat |
|---|
| 450 | -DDACSPY Counts the number of times objects of each of |
|---|
| 451 | the dynamic array classes are created. |
|---|
| 452 | The classes are defined via the DECL_ARRAY_CLASS |
|---|
| 453 | macro in DAC.h. This optional instrumentation |
|---|
| 454 | allows for determining which objects being |
|---|
| 455 | allocated on the heap may require allocation |
|---|
| 456 | optimization such as via a linked list of |
|---|
| 457 | preallocated objects. |
|---|
| 458 | -DMALLOC_DEBUG Generate code to track the file and line number from |
|---|
| 459 | which each block of MALLOCed storage was allocated |
|---|
| 460 | -DTRACE_IO_DATA If RTPERF trace level is >= 3, dump the first few |
|---|
| 461 | words of data read or written by any disk I/O |
|---|
| 462 | operation. This is a security exposure, and should |
|---|
| 463 | not be turned on in production. |
|---|
| 464 | -DNEW_DELETE_DEBUG Override global operators new and delete, to assist |
|---|
| 465 | in finding uninitialized dynamic storage, writing |
|---|
| 466 | beyond the end of an allocated object, reference to |
|---|
| 467 | deleted objects, and storage leaks. The 'mmfsadm |
|---|
| 468 | test newdebug' command enables some of these |
|---|
| 469 | features. |
|---|
| 470 | -DNEW_DELETE_TRACEBACKS |
|---|
| 471 | Save the call stack on memory allocations tracked |
|---|
| 472 | by -DNEW_DELETE_DEBUG. Not supported on Linux. |
|---|
| 473 | -DDIR_VERSION_NUMBERS |
|---|
| 474 | Increment one of the reserved words in directory |
|---|
| 475 | block headers each time the block is written to |
|---|
| 476 | disk. Helps to sequence directory updates in time |
|---|
| 477 | across multiple nodes. Should never be turned on |
|---|
| 478 | except on file systems that will be reformatted. |
|---|
| 479 | -DTEST_SMALL_DISKS=x When creating a file system or adding disks, |
|---|
| 480 | artificially limit the disk size to x megabytes. |
|---|
| 481 | Useful for testing ENOSPC conditions without having |
|---|
| 482 | to fill up large disks or creating new, smaller |
|---|
| 483 | logical volumes. |
|---|
| 484 | -DTEST_DELDISK Ignore all but the first disk listed in mount |
|---|
| 485 | options. This is useful when testing so that |
|---|
| 486 | the tsdeldisk and tsrpldisk commands can be used |
|---|
| 487 | without the "mm" commands. |
|---|
| 488 | -DNO_VFS_STATS Do not generate any code to generate statistics for |
|---|
| 489 | the 'mmfsadm vfsstats {enable|disable|reset|show}' |
|---|
| 490 | family of commands. |
|---|
| 491 | -DSTOP_TRACE_ON_FAILURE Set all trace flags to 0 as soon as LOGASSERT |
|---|
| 492 | is triggered or deamon cleanup begins. |
|---|
| 493 | -DDEBUG_SPINLOCK Define this if Linux kernel is built with |
|---|
| 494 | CONFIG_DEBUG_SPINLOCK. |
|---|
| 495 | -DFILEIDCMD_PERF Define this to enable perf measurements for mmfileid |
|---|
| 496 | command |
|---|
| 497 | -DKTRACE Define this to build trace device into Linux |
|---|
| 498 | kernel and allow trace statements in kernel |
|---|
| 499 | (also define KTRACE). |
|---|
| 500 | -DENABLE_SKIP_DATA_MOVE Enable the 'mmfsadm test disableDataXfer 0/1' |
|---|
| 501 | command to skip moving data between user buffers |
|---|
| 502 | and GPFS buffers and to skip data I/O. Allows |
|---|
| 503 | simulating a higher metadata load than the actual |
|---|
| 504 | data I/O configuration would support. |
|---|
| 505 | */ |
|---|
| 506 | |
|---|
| 507 | CDEBUGFLAGS = |
|---|
| 508 | KCDEBUGFLAGS = |
|---|
| 509 | |
|---|
| 510 | #ifdef GPFS_ARCH_POWER |
|---|
| 511 | ARCH_DEFINES = -DGPFS_ARCH_POWER |
|---|
| 512 | #endif |
|---|
| 513 | |
|---|
| 514 | #ifdef GPFS_ARCH_I386 |
|---|
| 515 | ARCH_DEFINES = -DGPFS_ARCH_I386 -DGPFS_LITTLE_ENDIAN |
|---|
| 516 | #endif |
|---|
| 517 | |
|---|
| 518 | #ifdef GPFS_ARCH_IA64 |
|---|
| 519 | ARCH_DEFINES = \ |
|---|
| 520 | -D__64BIT__ \ |
|---|
| 521 | -DALIGNED_DATA_ACCESS \ |
|---|
| 522 | -DGPFS_ARCH_IA64 \ |
|---|
| 523 | -DGPFS_LITTLE_ENDIAN \ |
|---|
| 524 | -DAPI_32BIT |
|---|
| 525 | #endif |
|---|
| 526 | |
|---|
| 527 | #ifdef GPFS_ARCH_PPC64 |
|---|
| 528 | ARCH_DEFINES = -DGPFS_ARCH_PPC64 -D__64BIT__ -DALIGNED_DATA_ACCESS |
|---|
| 529 | #endif |
|---|
| 530 | |
|---|
| 531 | #ifdef GPFS_ARCH_X86_64 |
|---|
| 532 | ARCH_DEFINES = -DGPFS_ARCH_X86_64 -D__64BIT__ -DGPFS_LITTLE_ENDIAN \ |
|---|
| 533 | -DAPI_32BIT |
|---|
| 534 | #endif |
|---|
| 535 | |
|---|
| 536 | /***********************************/ |
|---|
| 537 | /* Defines common to all platforms */ |
|---|
| 538 | /***********************************/ |
|---|
| 539 | COMMON_DEFINES = \ |
|---|
| 540 | -DALLOC_SUM_FILE \ |
|---|
| 541 | -DBLOCK_RESTORE \ |
|---|
| 542 | -DDESCQUORUM_OVERRIDE \ |
|---|
| 543 | -DDIO \ |
|---|
| 544 | -DDIO_XW \ |
|---|
| 545 | -DDISK_LEASE_DMS \ |
|---|
| 546 | -DDMAPI \ |
|---|
| 547 | -DDMAPI_MOVERS \ |
|---|
| 548 | -DDMAPI_PREFETCH_DIRATTRS \ |
|---|
| 549 | -DEXPORTER_EVENTS \ |
|---|
| 550 | -DFILESETS \ |
|---|
| 551 | -DFILESET_QUOTAS \ |
|---|
| 552 | -DGPFS_ERRNO_MAPPING \ |
|---|
| 553 | -DGPFS_QUOTACTL \ |
|---|
| 554 | -DLC_FENCING \ |
|---|
| 555 | -DMMAP_DIO \ |
|---|
| 556 | -DMMPMON \ |
|---|
| 557 | -DMMPMON_CUMULATIVE \ |
|---|
| 558 | -DMMPMON_DAEMON_PORT \ |
|---|
| 559 | -DMMPMON_HISTOGRAMS \ |
|---|
| 560 | -DMMPMON_NAMED_SOCKET \ |
|---|
| 561 | -DMMPMON_RPC \ |
|---|
| 562 | -DNFS_SKIP_SHRINK_TO_FIT \ |
|---|
| 563 | -DNFS4_ACL \ |
|---|
| 564 | -DNFS4_VCM \ |
|---|
| 565 | -DNO_XCLUST \ |
|---|
| 566 | -DPERF_STATS \ |
|---|
| 567 | -DPOLICY \ |
|---|
| 568 | -DPOLICY_RESTORE \ |
|---|
| 569 | -DPOOLS \ |
|---|
| 570 | -DPOW2_COND_SHIFT \ |
|---|
| 571 | -DSANERGY \ |
|---|
| 572 | -DSFS_PERF_SKIP_SYNC \ |
|---|
| 573 | -DSFS_PERF_USE_SMALL_BUFFER \ |
|---|
| 574 | -DSINGLE_PORT \ |
|---|
| 575 | -DSMB_LOCKS \ |
|---|
| 576 | -DTHREADED_RECEIVER \ |
|---|
| 577 | -DTSCOMM_SECURITY \ |
|---|
| 578 | -DUIDREMAP \ |
|---|
| 579 | -DWAIT_FOR_NSD_SERVERS |
|---|
| 580 | |
|---|
| 581 | COMMON_TEMPSHIP_DEFINES = \ |
|---|
| 582 | -DDBGASSERTS \ |
|---|
| 583 | -DNEW_DELETE_DEBUG \ |
|---|
| 584 | -DTRACK_USECOUNT \ |
|---|
| 585 | -DTRIGGERS \ |
|---|
| 586 | -DVERBOSETRACE |
|---|
| 587 | |
|---|
| 588 | COMMON_NEVERSHIP_DEFINES = \ |
|---|
| 589 | -DINSTRUMENT_LOCKS \ |
|---|
| 590 | -DPTHREAD_STATS \ |
|---|
| 591 | -DTRACE_IO_DATA \ |
|---|
| 592 | -DENTRYEXIT_TRACE |
|---|
| 593 | |
|---|
| 594 | #define DMAPI |
|---|
| 595 | #define EXPORTER_EVENTS |
|---|
| 596 | #define FILESETS |
|---|
| 597 | #define MMPMON |
|---|
| 598 | #define MMPMON_CUMULATIVE |
|---|
| 599 | #define MMPMON_HISTOGRAMS |
|---|
| 600 | #define PERF_STATS |
|---|
| 601 | #define POLICY |
|---|
| 602 | #define SANERGY |
|---|
| 603 | #define SMB_LOCKS |
|---|
| 604 | #define THREADED_RECEIVER |
|---|
| 605 | /* #define TRY_AND_BUY */ |
|---|
| 606 | #define TSCOMM_SECURITY |
|---|
| 607 | |
|---|
| 608 | /*********************/ |
|---|
| 609 | /* AIX configuration */ |
|---|
| 610 | /*********************/ |
|---|
| 611 | #ifdef GPFS_AIX |
|---|
| 612 | #define AIX5 |
|---|
| 613 | |
|---|
| 614 | /* 64-bit AIX build (on HACMP) */ |
|---|
| 615 | /* #define GPFSBLD64 */ |
|---|
| 616 | |
|---|
| 617 | #ifdef GPFSBLD64 |
|---|
| 618 | OPTFLAGS = -g |
|---|
| 619 | KOPTFLAGS = -g |
|---|
| 620 | EXTRASTD_CFLAGS = -q64 -qlargetype -qsuppress=1540-0053 |
|---|
| 621 | EXTRASTD_LDFLAGS = -q64 -g |
|---|
| 622 | EXTRALDFLAGS2 = -b64 |
|---|
| 623 | EXTRAARFLAGS = -X64 |
|---|
| 624 | EXTRAM4FLAGS = -D__64BIT__ |
|---|
| 625 | EXTRAASFLAGS = -a64 |
|---|
| 626 | MKTRCFMT_FLAGS = -q64 |
|---|
| 627 | #else |
|---|
| 628 | OPTFLAGS = |
|---|
| 629 | KOPTFLAGS = |
|---|
| 630 | #endif |
|---|
| 631 | |
|---|
| 632 | /* Build for AIX4 or AIX5 |
|---|
| 633 | * To build on AIX 5.x, you'll need these ifdefs |
|---|
| 634 | * -DSPAIXLVL=516 -DUSE51BREGS |
|---|
| 635 | */ |
|---|
| 636 | #ifndef AIX5 |
|---|
| 637 | #define AIX4 |
|---|
| 638 | #endif |
|---|
| 639 | |
|---|
| 640 | #ifdef AIX4 |
|---|
| 641 | AIX_VERSION_DEPS = -DSPAIXLVL=432 |
|---|
| 642 | #else |
|---|
| 643 | AIX_VERSION_DEPS = -DSPAIXLVL=516 -DUSE51BREGS |
|---|
| 644 | #endif |
|---|
| 645 | |
|---|
| 646 | SITE_OTHER_KINCLUDES = |
|---|
| 647 | SITE_OTHER_KDEFINES = -D_KERNEL |
|---|
| 648 | |
|---|
| 649 | SITE_FAR_TRACE_OPTS = |
|---|
| 650 | SITE_KFAR_TRACE_OPTS = |
|---|
| 651 | |
|---|
| 652 | DEFAULT_DEFINES = \ |
|---|
| 653 | $(AIX_VERSION_DEPS) \ |
|---|
| 654 | -D__FULL_PROTO \ |
|---|
| 655 | -DGPFS_AIX |
|---|
| 656 | |
|---|
| 657 | TEMPSHIP_DEFINES = \ |
|---|
| 658 | -DNEW_DELETE_TRACEBACKS |
|---|
| 659 | |
|---|
| 660 | EXTRAINSTROOTFLAGS = -s |
|---|
| 661 | EXTRAINSTPROGFLAGS = -s |
|---|
| 662 | |
|---|
| 663 | #endif /* end of AIX */ |
|---|
| 664 | |
|---|
| 665 | /***********************/ |
|---|
| 666 | /* Linux configuration */ |
|---|
| 667 | /***********************/ |
|---|
| 668 | #ifdef GPFS_LINUX |
|---|
| 669 | |
|---|
| 670 | SITE_OTHER_KDEFINES = -D_KERNEL -D__KERNEL__ -DMODULE \ |
|---|
| 671 | -DGPFS_EXPORT_KSYMS -DEXPORT_SYMTAB |
|---|
| 672 | |
|---|
| 673 | COMMON_LINUX = \ |
|---|
| 674 | -U_GNU_SOURCE \ |
|---|
| 675 | -D__USE_BSD \ |
|---|
| 676 | -D_LARGEFILE64_SOURCE \ |
|---|
| 677 | -DGPFS_LINUX \ |
|---|
| 678 | -DYESSTR=__YESSTR \ |
|---|
| 679 | -DNOSTR=__NOSTR \ |
|---|
| 680 | -DLUM \ |
|---|
| 681 | -DNPTL \ |
|---|
| 682 | -DSSEG_SWIZZLE_PTRS \ |
|---|
| 683 | -D$(LINUX_DISTRIBUTION) \ |
|---|
| 684 | -DLINUX_DISTRIBUTION_LEVEL=LINUX_DISTRIBUTION_LEVEL \ |
|---|
| 685 | $(LINUX_PATCH_DEFINES) |
|---|
| 686 | |
|---|
| 687 | #define LUM |
|---|
| 688 | #define SSEG_SWIZZLE_PTRS |
|---|
| 689 | |
|---|
| 690 | EXTRASTD_LDFLAGS = |
|---|
| 691 | EXTRALDFLAGS2 = |
|---|
| 692 | |
|---|
| 693 | SITEMCRREV_RAW = "$Revision: 1.535.2.13 $ " |
|---|
| 694 | |
|---|
| 695 | /* If you add -g to OPTFLAGS, you must also comment out the define of |
|---|
| 696 | * FAR_TRACE. It is recommended to remove the -fomit-frame-pointer |
|---|
| 697 | * option for better debugging information. If you add -g to KOPTFLAGS, you |
|---|
| 698 | * must comment out the define of KFAR_TRACE. |
|---|
| 699 | */ |
|---|
| 700 | |
|---|
| 701 | /**********************/ |
|---|
| 702 | /* Linux i386 defines */ |
|---|
| 703 | /**********************/ |
|---|
| 704 | #ifdef GPFS_ARCH_I386 |
|---|
| 705 | |
|---|
| 706 | OPTFLAGS = -g0 -O2 -march=i686 -fno-strict-aliasing -fno-exceptions \ |
|---|
| 707 | -DGPFS_FRAME_POINTER |
|---|
| 708 | |
|---|
| 709 | KOPTFLAGS = -O2 -march=i686 -fno-strict-aliasing -fno-exceptions \ |
|---|
| 710 | -fno-common -fomit-frame-pointer |
|---|
| 711 | |
|---|
| 712 | #if LINUX_KERNEL_VERSION > 2060500 |
|---|
| 713 | |
|---|
| 714 | #if LINUX_KERNEL_VERSION >= 2061600 |
|---|
| 715 | COMMON_26_FLAGS += -m32 -ffreestanding |
|---|
| 716 | KOPTFLAGS += $(COMMON_26_FLAGS) -mpreferred-stack-boundary=2 |
|---|
| 717 | OPTFLAGS += $(COMMON_26_FLAGS) |
|---|
| 718 | #endif /* LINUX_KERNEL_VERSION >= 2061600 */ |
|---|
| 719 | |
|---|
| 720 | #ifdef PCE_26_PCE |
|---|
| 721 | #define NOKREGPARMS |
|---|
| 722 | KOPTFLAGS += -mpreferred-stack-boundary=2 -DPCE_26_PCE |
|---|
| 723 | OPTFLAGS += -DPCE_26_PCE |
|---|
| 724 | #endif /* PCE_26_PCE */ |
|---|
| 725 | |
|---|
| 726 | #ifndef NOKREGPARMS |
|---|
| 727 | KOPTFLAGS += -mregparm=3 -mpreferred-stack-boundary=2 |
|---|
| 728 | #else |
|---|
| 729 | SITE_OTHER_KDEFINES += -DNOKREGPARMS |
|---|
| 730 | #endif |
|---|
| 731 | #endif /* LINUX_KERNEL_VERSION > 2060500 */ |
|---|
| 732 | |
|---|
| 733 | #define KFAR_TRACE |
|---|
| 734 | |
|---|
| 735 | DEFAULT_DEFINES = \ |
|---|
| 736 | $(COMMON_LINUX) \ |
|---|
| 737 | -DLINUX_KERNEL_VERSION=LINUX_KERNEL_VERSION \ |
|---|
| 738 | -DLIMIT_KSTACKS \ |
|---|
| 739 | -DSSEG_RESERVE_MEM |
|---|
| 740 | |
|---|
| 741 | NEVERSHIP_DEFINES = -DKSTACK_CHECK -DSMART_PTR_DEBUG |
|---|
| 742 | |
|---|
| 743 | #endif /* end of Linux i386 defines */ |
|---|
| 744 | |
|---|
| 745 | |
|---|
| 746 | /***********************/ |
|---|
| 747 | /* Linux Power defines */ |
|---|
| 748 | /***********************/ |
|---|
| 749 | #ifdef GPFS_ARCH_POWER |
|---|
| 750 | |
|---|
| 751 | OPTFLAGS = -g0 -O2 -fno-exceptions |
|---|
| 752 | KOPTFLAGS = -O2 -msoft-float -fno-exceptions -fno-common |
|---|
| 753 | |
|---|
| 754 | #undef KFAR_TRACE |
|---|
| 755 | |
|---|
| 756 | DEFAULT_DEFINES = \ |
|---|
| 757 | $(COMMON_LINUX) \ |
|---|
| 758 | -DCONFIG_UP \ |
|---|
| 759 | -DNO_ASM_SYNCH \ |
|---|
| 760 | -DSSEG_RESERVE_MEM \ |
|---|
| 761 | -DLINUX_KERNEL_VERSION=LINUX_KERNEL_VERSION |
|---|
| 762 | |
|---|
| 763 | TEMPSHIP_DEFINES = -DDISABLE_KERNEL_PANIC |
|---|
| 764 | NEVERSHIP_DEFINES = -DKSTACK_CHECK -DSMART_PTR_DEBUG |
|---|
| 765 | |
|---|
| 766 | #define NO_ASM_UTIL |
|---|
| 767 | |
|---|
| 768 | #endif /* end of Linux power defines */ |
|---|
| 769 | |
|---|
| 770 | |
|---|
| 771 | /**********************/ |
|---|
| 772 | /* Linux ia64 defines */ |
|---|
| 773 | /**********************/ |
|---|
| 774 | #ifdef GPFS_ARCH_IA64 |
|---|
| 775 | |
|---|
| 776 | OPTFLAGS = -g0 -O2 -fno-strict-aliasing -fno-exceptions |
|---|
| 777 | KOPTFLAGS = -O2 -fno-strict-aliasing -fno-exceptions -fno-common |
|---|
| 778 | |
|---|
| 779 | #undef KFAR_TRACE |
|---|
| 780 | #undef FAR_TRACE |
|---|
| 781 | |
|---|
| 782 | DEFAULT_DEFINES = \ |
|---|
| 783 | $(COMMON_LINUX) \ |
|---|
| 784 | -DLINUX_KERNEL_VERSION=LINUX_KERNEL_VERSION |
|---|
| 785 | |
|---|
| 786 | NEVERSHIP_DEFINES = -DKSTACK_CHECK -DSMART_PTR_DEBUG |
|---|
| 787 | |
|---|
| 788 | #endif /* end of Linux ia64 defines */ |
|---|
| 789 | |
|---|
| 790 | /***************************/ |
|---|
| 791 | /* Linux PowerPC64 defines */ |
|---|
| 792 | /***************************/ |
|---|
| 793 | #ifdef GPFS_ARCH_PPC64 |
|---|
| 794 | |
|---|
| 795 | #if LINUX_KERNEL_VERSION < 2060000 |
|---|
| 796 | CC = powerpc64-linux-g++ |
|---|
| 797 | C_COMP = powerpc64-linux-gcc |
|---|
| 798 | CPP = powerpc64-linux-cpp |
|---|
| 799 | BARELD = powerpc64-linux-ld |
|---|
| 800 | AR = powerpc64-linux-ar clq |
|---|
| 801 | AS = powerpc64-linux-as |
|---|
| 802 | KAR = powerpc64-linux-ld $(LDFLAGS2) -r -o |
|---|
| 803 | RANLIB = powerpc64-linux-ranlib |
|---|
| 804 | ARDEL = $(AR) d |
|---|
| 805 | MAKEDEPEND = $(CC) |
|---|
| 806 | CPLUSINC = -I/opt/cross/include |
|---|
| 807 | #endif |
|---|
| 808 | |
|---|
| 809 | OPTFLAGS = -g0 -O2 -mminimal-toc -fno-exceptions |
|---|
| 810 | KOPTFLAGS = -O -msoft-float -fno-exceptions |
|---|
| 811 | |
|---|
| 812 | #if LINUX_KERNEL_VERSION > 2060000 |
|---|
| 813 | OPTFLAGS += -m64 -mpowerpc64 |
|---|
| 814 | MAKEDEPEND = $(CC) -m64 |
|---|
| 815 | #if (LINUX_KERNEL_VERSION >= 2061600) |
|---|
| 816 | KOPTFLAGS += -m64 -mcall-aixdesc -mno-altivec -fno-common -ffreestanding -mtune=power4 -funit-at-a-time -mstring -fno-ivopts -Wa,-maltivec |
|---|
| 817 | #else |
|---|
| 818 | KOPTFLAGS += -m64 -mpowerpc64 -fno-common |
|---|
| 819 | #endif |
|---|
| 820 | |
|---|
| 821 | EXTRASTD_LDFLAGS = -melf64ppc -m64 |
|---|
| 822 | EXTRALDFLAGS2 = -melf64ppc |
|---|
| 823 | BARELD += -melf64ppc |
|---|
| 824 | |
|---|
| 825 | ifeq ("$(LINUX_DISTRIBUTION)","REDHAT_AS_LINUX") |
|---|
| 826 | #if LINUX_KERNEL_VERSION >= 2060905 |
|---|
| 827 | KOPTFLAGS += -mcall-aixdesc |
|---|
| 828 | #endif |
|---|
| 829 | endif |
|---|
| 830 | |
|---|
| 831 | #endif |
|---|
| 832 | |
|---|
| 833 | |
|---|
| 834 | DEFAULT_DEFINES = \ |
|---|
| 835 | $(COMMON_LINUX) \ |
|---|
| 836 | -DLINUX_KERNEL_VERSION=LINUX_KERNEL_VERSION |
|---|
| 837 | |
|---|
| 838 | NEVERSHIP_DEFINES = -DKSTACK_CHECK -DSMART_PTR_DEBUG |
|---|
| 839 | |
|---|
| 840 | #endif /* end of Linux PowerPC64 defines */ |
|---|
| 841 | |
|---|
| 842 | /**************************************/ |
|---|
| 843 | /* Linux Opteron (aka x86_64) defines */ |
|---|
| 844 | /**************************************/ |
|---|
| 845 | #ifdef GPFS_ARCH_X86_64 |
|---|
| 846 | |
|---|
| 847 | OPTFLAGS = -g0 -O2 -fno-strict-aliasing -fno-exceptions -fPIC |
|---|
| 848 | KOPTFLAGS = -O2 -fno-strict-aliasing -fno-exceptions -fno-common \ |
|---|
| 849 | -mcmodel=kernel -mno-red-zone |
|---|
| 850 | |
|---|
| 851 | #undef KFAR_TRACE |
|---|
| 852 | #undef FAR_TRACE |
|---|
| 853 | |
|---|
| 854 | DEFAULT_DEFINES = \ |
|---|
| 855 | $(COMMON_LINUX) \ |
|---|
| 856 | -DLINUX_KERNEL_VERSION=LINUX_KERNEL_VERSION \ |
|---|
| 857 | -DLIMIT_KSTACKS |
|---|
| 858 | |
|---|
| 859 | /* SMART_PTR_DEBUG turned off in ODE build due to large performance hit */ |
|---|
| 860 | NEVERSHIP_DEFINES = -DKSTACK_CHECK -DSMART_PTR_DEBUG |
|---|
| 861 | |
|---|
| 862 | #endif /* end of Linux x86_64 defines */ |
|---|
| 863 | |
|---|
| 864 | #ifdef FAR_TRACE |
|---|
| 865 | SITE_FAR_TRACE_OPTS = -DFAR_TRACE -DFAR_CODE -fno-defer-pop |
|---|
| 866 | #else |
|---|
| 867 | SITE_FAR_TRACE_OPTS = |
|---|
| 868 | #endif |
|---|
| 869 | |
|---|
| 870 | #ifdef KFAR_TRACE |
|---|
| 871 | SITE_KFAR_TRACE_OPTS = -DFAR_TRACE -DFAR_CODE -fno-defer-pop |
|---|
| 872 | #else |
|---|
| 873 | SITE_KFAR_TRACE_OPTS = |
|---|
| 874 | #endif |
|---|
| 875 | |
|---|
| 876 | #endif /* end of Linux defines */ |
|---|
| 877 | |
|---|
| 878 | /* Build complete list of -D compile flags */ |
|---|
| 879 | SITE_DEFINES = $(ARCH_DEFINES) $(DEFAULT_DEFINES) $(COMMON_DEFINES) |
|---|
| 880 | |
|---|
| 881 | /* kernel source build */ |
|---|
| 882 | #ifdef SRC_BUILD |
|---|
| 883 | SITE_DEFINES += -DSRC_BUILD |
|---|
| 884 | #endif |
|---|
| 885 | |
|---|
| 886 | |
|---|
| 887 | /* Force compiler options needed for gprof if necessary */ |
|---|
| 888 | #ifdef GPROF_DAEMON |
|---|
| 889 | CDEBUGFLAGS = -g -pg |
|---|
| 890 | #endif |
|---|
| 891 | |
|---|