[16] | 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 2062015 |
---|
| 112 | KERNEL_HEADER_DIR = /usr/src/linux-headers-2.6.20-15-generic/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-15-generic/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 | |
---|