Annotation of ChivanetAimPidgin/CMakeFiles/3.31.5/CompilerIdCXX/CMakeCXXCompilerId.cpp, revision 1.1.1.1

1.1       snw         1: /* This source file must have a .cpp extension so that all C++ compilers
                      2:    recognize the extension without flags.  Borland does not know .cxx for
                      3:    example.  */
                      4: #ifndef __cplusplus
                      5: # error "A C compiler has been selected for C++."
                      6: #endif
                      7: 
                      8: #if !defined(__has_include)
                      9: /* If the compiler does not have __has_include, pretend the answer is
                     10:    always no.  */
                     11: #  define __has_include(x) 0
                     12: #endif
                     13: 
                     14: 
                     15: /* Version number components: V=Version, R=Revision, P=Patch
                     16:    Version date components:   YYYY=Year, MM=Month,   DD=Day  */
                     17: 
                     18: #if defined(__INTEL_COMPILER) || defined(__ICC)
                     19: # define COMPILER_ID "Intel"
                     20: # if defined(_MSC_VER)
                     21: #  define SIMULATE_ID "MSVC"
                     22: # endif
                     23: # if defined(__GNUC__)
                     24: #  define SIMULATE_ID "GNU"
                     25: # endif
                     26:   /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
                     27:      except that a few beta releases use the old format with V=2021.  */
                     28: # if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
                     29: #  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
                     30: #  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
                     31: #  if defined(__INTEL_COMPILER_UPDATE)
                     32: #   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
                     33: #  else
                     34: #   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
                     35: #  endif
                     36: # else
                     37: #  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
                     38: #  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
                     39:    /* The third version component from --version is an update index,
                     40:       but no macro is provided for it.  */
                     41: #  define COMPILER_VERSION_PATCH DEC(0)
                     42: # endif
                     43: # if defined(__INTEL_COMPILER_BUILD_DATE)
                     44:    /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
                     45: #  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
                     46: # endif
                     47: # if defined(_MSC_VER)
                     48:    /* _MSC_VER = VVRR */
                     49: #  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
                     50: #  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
                     51: # endif
                     52: # if defined(__GNUC__)
                     53: #  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
                     54: # elif defined(__GNUG__)
                     55: #  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
                     56: # endif
                     57: # if defined(__GNUC_MINOR__)
                     58: #  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
                     59: # endif
                     60: # if defined(__GNUC_PATCHLEVEL__)
                     61: #  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
                     62: # endif
                     63: 
                     64: #elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
                     65: # define COMPILER_ID "IntelLLVM"
                     66: #if defined(_MSC_VER)
                     67: # define SIMULATE_ID "MSVC"
                     68: #endif
                     69: #if defined(__GNUC__)
                     70: # define SIMULATE_ID "GNU"
                     71: #endif
                     72: /* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
                     73:  * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
                     74:  * VVVV is no smaller than the current year when a version is released.
                     75:  */
                     76: #if __INTEL_LLVM_COMPILER < 1000000L
                     77: # define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
                     78: # define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
                     79: # define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
                     80: #else
                     81: # define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
                     82: # define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
                     83: # define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
                     84: #endif
                     85: #if defined(_MSC_VER)
                     86:   /* _MSC_VER = VVRR */
                     87: # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
                     88: # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
                     89: #endif
                     90: #if defined(__GNUC__)
                     91: # define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
                     92: #elif defined(__GNUG__)
                     93: # define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
                     94: #endif
                     95: #if defined(__GNUC_MINOR__)
                     96: # define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
                     97: #endif
                     98: #if defined(__GNUC_PATCHLEVEL__)
                     99: # define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
                    100: #endif
                    101: 
                    102: #elif defined(__PATHCC__)
                    103: # define COMPILER_ID "PathScale"
                    104: # define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
                    105: # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
                    106: # if defined(__PATHCC_PATCHLEVEL__)
                    107: #  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
                    108: # endif
                    109: 
                    110: #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
                    111: # define COMPILER_ID "Embarcadero"
                    112: # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
                    113: # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
                    114: # define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
                    115: 
                    116: #elif defined(__BORLANDC__)
                    117: # define COMPILER_ID "Borland"
                    118:   /* __BORLANDC__ = 0xVRR */
                    119: # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
                    120: # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
                    121: 
                    122: #elif defined(__WATCOMC__) && __WATCOMC__ < 1200
                    123: # define COMPILER_ID "Watcom"
                    124:    /* __WATCOMC__ = VVRR */
                    125: # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
                    126: # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
                    127: # if (__WATCOMC__ % 10) > 0
                    128: #  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
                    129: # endif
                    130: 
                    131: #elif defined(__WATCOMC__)
                    132: # define COMPILER_ID "OpenWatcom"
                    133:    /* __WATCOMC__ = VVRP + 1100 */
                    134: # define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
                    135: # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
                    136: # if (__WATCOMC__ % 10) > 0
                    137: #  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
                    138: # endif
                    139: 
                    140: #elif defined(__SUNPRO_CC)
                    141: # define COMPILER_ID "SunPro"
                    142: # if __SUNPRO_CC >= 0x5100
                    143:    /* __SUNPRO_CC = 0xVRRP */
                    144: #  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
                    145: #  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
                    146: #  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
                    147: # else
                    148:    /* __SUNPRO_CC = 0xVRP */
                    149: #  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
                    150: #  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
                    151: #  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
                    152: # endif
                    153: 
                    154: #elif defined(__HP_aCC)
                    155: # define COMPILER_ID "HP"
                    156:   /* __HP_aCC = VVRRPP */
                    157: # define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
                    158: # define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
                    159: # define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
                    160: 
                    161: #elif defined(__DECCXX)
                    162: # define COMPILER_ID "Compaq"
                    163:   /* __DECCXX_VER = VVRRTPPPP */
                    164: # define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
                    165: # define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
                    166: # define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
                    167: 
                    168: #elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
                    169: # define COMPILER_ID "zOS"
                    170:   /* __IBMCPP__ = VRP */
                    171: # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
                    172: # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
                    173: # define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
                    174: 
                    175: #elif defined(__open_xl__) && defined(__clang__)
                    176: # define COMPILER_ID "IBMClang"
                    177: # define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
                    178: # define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
                    179: # define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
                    180: # define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
                    181: 
                    182: 
                    183: #elif defined(__ibmxl__) && defined(__clang__)
                    184: # define COMPILER_ID "XLClang"
                    185: # define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
                    186: # define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
                    187: # define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
                    188: # define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
                    189: 
                    190: 
                    191: #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
                    192: # define COMPILER_ID "XL"
                    193:   /* __IBMCPP__ = VRP */
                    194: # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
                    195: # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
                    196: # define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
                    197: 
                    198: #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
                    199: # define COMPILER_ID "VisualAge"
                    200:   /* __IBMCPP__ = VRP */
                    201: # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
                    202: # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
                    203: # define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
                    204: 
                    205: #elif defined(__NVCOMPILER)
                    206: # define COMPILER_ID "NVHPC"
                    207: # define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
                    208: # define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
                    209: # if defined(__NVCOMPILER_PATCHLEVEL__)
                    210: #  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
                    211: # endif
                    212: 
                    213: #elif defined(__PGI)
                    214: # define COMPILER_ID "PGI"
                    215: # define COMPILER_VERSION_MAJOR DEC(__PGIC__)
                    216: # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
                    217: # if defined(__PGIC_PATCHLEVEL__)
                    218: #  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
                    219: # endif
                    220: 
                    221: #elif defined(__clang__) && defined(__cray__)
                    222: # define COMPILER_ID "CrayClang"
                    223: # define COMPILER_VERSION_MAJOR DEC(__cray_major__)
                    224: # define COMPILER_VERSION_MINOR DEC(__cray_minor__)
                    225: # define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
                    226: # define COMPILER_VERSION_INTERNAL_STR __clang_version__
                    227: 
                    228: 
                    229: #elif defined(_CRAYC)
                    230: # define COMPILER_ID "Cray"
                    231: # define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
                    232: # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
                    233: 
                    234: #elif defined(__TI_COMPILER_VERSION__)
                    235: # define COMPILER_ID "TI"
                    236:   /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
                    237: # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
                    238: # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
                    239: # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
                    240: 
                    241: #elif defined(__CLANG_FUJITSU)
                    242: # define COMPILER_ID "FujitsuClang"
                    243: # define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
                    244: # define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
                    245: # define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
                    246: # define COMPILER_VERSION_INTERNAL_STR __clang_version__
                    247: 
                    248: 
                    249: #elif defined(__FUJITSU)
                    250: # define COMPILER_ID "Fujitsu"
                    251: # if defined(__FCC_version__)
                    252: #   define COMPILER_VERSION __FCC_version__
                    253: # elif defined(__FCC_major__)
                    254: #   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
                    255: #   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
                    256: #   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
                    257: # endif
                    258: # if defined(__fcc_version)
                    259: #   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
                    260: # elif defined(__FCC_VERSION)
                    261: #   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
                    262: # endif
                    263: 
                    264: 
                    265: #elif defined(__ghs__)
                    266: # define COMPILER_ID "GHS"
                    267: /* __GHS_VERSION_NUMBER = VVVVRP */
                    268: # ifdef __GHS_VERSION_NUMBER
                    269: # define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
                    270: # define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
                    271: # define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
                    272: # endif
                    273: 
                    274: #elif defined(__TASKING__)
                    275: # define COMPILER_ID "Tasking"
                    276:   # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
                    277:   # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
                    278: # define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
                    279: 
                    280: #elif defined(__ORANGEC__)
                    281: # define COMPILER_ID "OrangeC"
                    282: # define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
                    283: # define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
                    284: # define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
                    285: 
                    286: #elif defined(__SCO_VERSION__)
                    287: # define COMPILER_ID "SCO"
                    288: 
                    289: #elif defined(__ARMCC_VERSION) && !defined(__clang__)
                    290: # define COMPILER_ID "ARMCC"
                    291: #if __ARMCC_VERSION >= 1000000
                    292:   /* __ARMCC_VERSION = VRRPPPP */
                    293:   # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
                    294:   # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
                    295:   # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
                    296: #else
                    297:   /* __ARMCC_VERSION = VRPPPP */
                    298:   # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
                    299:   # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
                    300:   # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
                    301: #endif
                    302: 
                    303: 
                    304: #elif defined(__clang__) && defined(__apple_build_version__)
                    305: # define COMPILER_ID "AppleClang"
                    306: # if defined(_MSC_VER)
                    307: #  define SIMULATE_ID "MSVC"
                    308: # endif
                    309: # define COMPILER_VERSION_MAJOR DEC(__clang_major__)
                    310: # define COMPILER_VERSION_MINOR DEC(__clang_minor__)
                    311: # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
                    312: # if defined(_MSC_VER)
                    313:    /* _MSC_VER = VVRR */
                    314: #  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
                    315: #  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
                    316: # endif
                    317: # define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
                    318: 
                    319: #elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
                    320: # define COMPILER_ID "ARMClang"
                    321:   # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
                    322:   # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
                    323:   # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100   % 100)
                    324: # define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
                    325: 
                    326: #elif defined(__clang__) && defined(__ti__)
                    327: # define COMPILER_ID "TIClang"
                    328:   # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
                    329:   # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
                    330:   # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
                    331: # define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
                    332: 
                    333: #elif defined(__clang__)
                    334: # define COMPILER_ID "Clang"
                    335: # if defined(_MSC_VER)
                    336: #  define SIMULATE_ID "MSVC"
                    337: # endif
                    338: # define COMPILER_VERSION_MAJOR DEC(__clang_major__)
                    339: # define COMPILER_VERSION_MINOR DEC(__clang_minor__)
                    340: # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
                    341: # if defined(_MSC_VER)
                    342:    /* _MSC_VER = VVRR */
                    343: #  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
                    344: #  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
                    345: # endif
                    346: 
                    347: #elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
                    348: # define COMPILER_ID "LCC"
                    349: # define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
                    350: # define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
                    351: # if defined(__LCC_MINOR__)
                    352: #  define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
                    353: # endif
                    354: # if defined(__GNUC__) && defined(__GNUC_MINOR__)
                    355: #  define SIMULATE_ID "GNU"
                    356: #  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
                    357: #  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
                    358: #  if defined(__GNUC_PATCHLEVEL__)
                    359: #   define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
                    360: #  endif
                    361: # endif
                    362: 
                    363: #elif defined(__GNUC__) || defined(__GNUG__)
                    364: # define COMPILER_ID "GNU"
                    365: # if defined(__GNUC__)
                    366: #  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
                    367: # else
                    368: #  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
                    369: # endif
                    370: # if defined(__GNUC_MINOR__)
                    371: #  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
                    372: # endif
                    373: # if defined(__GNUC_PATCHLEVEL__)
                    374: #  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
                    375: # endif
                    376: 
                    377: #elif defined(_MSC_VER)
                    378: # define COMPILER_ID "MSVC"
                    379:   /* _MSC_VER = VVRR */
                    380: # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
                    381: # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
                    382: # if defined(_MSC_FULL_VER)
                    383: #  if _MSC_VER >= 1400
                    384:     /* _MSC_FULL_VER = VVRRPPPPP */
                    385: #   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
                    386: #  else
                    387:     /* _MSC_FULL_VER = VVRRPPPP */
                    388: #   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
                    389: #  endif
                    390: # endif
                    391: # if defined(_MSC_BUILD)
                    392: #  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
                    393: # endif
                    394: 
                    395: #elif defined(_ADI_COMPILER)
                    396: # define COMPILER_ID "ADSP"
                    397: #if defined(__VERSIONNUM__)
                    398:   /* __VERSIONNUM__ = 0xVVRRPPTT */
                    399: #  define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
                    400: #  define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
                    401: #  define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
                    402: #  define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
                    403: #endif
                    404: 
                    405: #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
                    406: # define COMPILER_ID "IAR"
                    407: # if defined(__VER__) && defined(__ICCARM__)
                    408: #  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
                    409: #  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
                    410: #  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
                    411: #  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
                    412: # elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
                    413: #  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
                    414: #  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
                    415: #  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
                    416: #  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
                    417: # endif
                    418: 
                    419: 
                    420: /* These compilers are either not known or too old to define an
                    421:   identification macro.  Try to identify the platform and guess that
                    422:   it is the native compiler.  */
                    423: #elif defined(__hpux) || defined(__hpua)
                    424: # define COMPILER_ID "HP"
                    425: 
                    426: #else /* unknown compiler */
                    427: # define COMPILER_ID ""
                    428: #endif
                    429: 
                    430: /* Construct the string literal in pieces to prevent the source from
                    431:    getting matched.  Store it in a pointer rather than an array
                    432:    because some compilers will just produce instructions to fill the
                    433:    array rather than assigning a pointer to a static array.  */
                    434: char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
                    435: #ifdef SIMULATE_ID
                    436: char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
                    437: #endif
                    438: 
                    439: #ifdef __QNXNTO__
                    440: char const* qnxnto = "INFO" ":" "qnxnto[]";
                    441: #endif
                    442: 
                    443: #if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
                    444: char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
                    445: #endif
                    446: 
                    447: #define STRINGIFY_HELPER(X) #X
                    448: #define STRINGIFY(X) STRINGIFY_HELPER(X)
                    449: 
                    450: /* Identify known platforms by name.  */
                    451: #if defined(__linux) || defined(__linux__) || defined(linux)
                    452: # define PLATFORM_ID "Linux"
                    453: 
                    454: #elif defined(__MSYS__)
                    455: # define PLATFORM_ID "MSYS"
                    456: 
                    457: #elif defined(__CYGWIN__)
                    458: # define PLATFORM_ID "Cygwin"
                    459: 
                    460: #elif defined(__MINGW32__)
                    461: # define PLATFORM_ID "MinGW"
                    462: 
                    463: #elif defined(__APPLE__)
                    464: # define PLATFORM_ID "Darwin"
                    465: 
                    466: #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
                    467: # define PLATFORM_ID "Windows"
                    468: 
                    469: #elif defined(__FreeBSD__) || defined(__FreeBSD)
                    470: # define PLATFORM_ID "FreeBSD"
                    471: 
                    472: #elif defined(__NetBSD__) || defined(__NetBSD)
                    473: # define PLATFORM_ID "NetBSD"
                    474: 
                    475: #elif defined(__OpenBSD__) || defined(__OPENBSD)
                    476: # define PLATFORM_ID "OpenBSD"
                    477: 
                    478: #elif defined(__sun) || defined(sun)
                    479: # define PLATFORM_ID "SunOS"
                    480: 
                    481: #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
                    482: # define PLATFORM_ID "AIX"
                    483: 
                    484: #elif defined(__hpux) || defined(__hpux__)
                    485: # define PLATFORM_ID "HP-UX"
                    486: 
                    487: #elif defined(__HAIKU__)
                    488: # define PLATFORM_ID "Haiku"
                    489: 
                    490: #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
                    491: # define PLATFORM_ID "BeOS"
                    492: 
                    493: #elif defined(__QNX__) || defined(__QNXNTO__)
                    494: # define PLATFORM_ID "QNX"
                    495: 
                    496: #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
                    497: # define PLATFORM_ID "Tru64"
                    498: 
                    499: #elif defined(__riscos) || defined(__riscos__)
                    500: # define PLATFORM_ID "RISCos"
                    501: 
                    502: #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
                    503: # define PLATFORM_ID "SINIX"
                    504: 
                    505: #elif defined(__UNIX_SV__)
                    506: # define PLATFORM_ID "UNIX_SV"
                    507: 
                    508: #elif defined(__bsdos__)
                    509: # define PLATFORM_ID "BSDOS"
                    510: 
                    511: #elif defined(_MPRAS) || defined(MPRAS)
                    512: # define PLATFORM_ID "MP-RAS"
                    513: 
                    514: #elif defined(__osf) || defined(__osf__)
                    515: # define PLATFORM_ID "OSF1"
                    516: 
                    517: #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
                    518: # define PLATFORM_ID "SCO_SV"
                    519: 
                    520: #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
                    521: # define PLATFORM_ID "ULTRIX"
                    522: 
                    523: #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
                    524: # define PLATFORM_ID "Xenix"
                    525: 
                    526: #elif defined(__WATCOMC__)
                    527: # if defined(__LINUX__)
                    528: #  define PLATFORM_ID "Linux"
                    529: 
                    530: # elif defined(__DOS__)
                    531: #  define PLATFORM_ID "DOS"
                    532: 
                    533: # elif defined(__OS2__)
                    534: #  define PLATFORM_ID "OS2"
                    535: 
                    536: # elif defined(__WINDOWS__)
                    537: #  define PLATFORM_ID "Windows3x"
                    538: 
                    539: # elif defined(__VXWORKS__)
                    540: #  define PLATFORM_ID "VxWorks"
                    541: 
                    542: # else /* unknown platform */
                    543: #  define PLATFORM_ID
                    544: # endif
                    545: 
                    546: #elif defined(__INTEGRITY)
                    547: # if defined(INT_178B)
                    548: #  define PLATFORM_ID "Integrity178"
                    549: 
                    550: # else /* regular Integrity */
                    551: #  define PLATFORM_ID "Integrity"
                    552: # endif
                    553: 
                    554: # elif defined(_ADI_COMPILER)
                    555: #  define PLATFORM_ID "ADSP"
                    556: 
                    557: #else /* unknown platform */
                    558: # define PLATFORM_ID
                    559: 
                    560: #endif
                    561: 
                    562: /* For windows compilers MSVC and Intel we can determine
                    563:    the architecture of the compiler being used.  This is because
                    564:    the compilers do not have flags that can change the architecture,
                    565:    but rather depend on which compiler is being used
                    566: */
                    567: #if defined(_WIN32) && defined(_MSC_VER)
                    568: # if defined(_M_IA64)
                    569: #  define ARCHITECTURE_ID "IA64"
                    570: 
                    571: # elif defined(_M_ARM64EC)
                    572: #  define ARCHITECTURE_ID "ARM64EC"
                    573: 
                    574: # elif defined(_M_X64) || defined(_M_AMD64)
                    575: #  define ARCHITECTURE_ID "x64"
                    576: 
                    577: # elif defined(_M_IX86)
                    578: #  define ARCHITECTURE_ID "X86"
                    579: 
                    580: # elif defined(_M_ARM64)
                    581: #  define ARCHITECTURE_ID "ARM64"
                    582: 
                    583: # elif defined(_M_ARM)
                    584: #  if _M_ARM == 4
                    585: #   define ARCHITECTURE_ID "ARMV4I"
                    586: #  elif _M_ARM == 5
                    587: #   define ARCHITECTURE_ID "ARMV5I"
                    588: #  else
                    589: #   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
                    590: #  endif
                    591: 
                    592: # elif defined(_M_MIPS)
                    593: #  define ARCHITECTURE_ID "MIPS"
                    594: 
                    595: # elif defined(_M_SH)
                    596: #  define ARCHITECTURE_ID "SHx"
                    597: 
                    598: # else /* unknown architecture */
                    599: #  define ARCHITECTURE_ID ""
                    600: # endif
                    601: 
                    602: #elif defined(__WATCOMC__)
                    603: # if defined(_M_I86)
                    604: #  define ARCHITECTURE_ID "I86"
                    605: 
                    606: # elif defined(_M_IX86)
                    607: #  define ARCHITECTURE_ID "X86"
                    608: 
                    609: # else /* unknown architecture */
                    610: #  define ARCHITECTURE_ID ""
                    611: # endif
                    612: 
                    613: #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
                    614: # if defined(__ICCARM__)
                    615: #  define ARCHITECTURE_ID "ARM"
                    616: 
                    617: # elif defined(__ICCRX__)
                    618: #  define ARCHITECTURE_ID "RX"
                    619: 
                    620: # elif defined(__ICCRH850__)
                    621: #  define ARCHITECTURE_ID "RH850"
                    622: 
                    623: # elif defined(__ICCRL78__)
                    624: #  define ARCHITECTURE_ID "RL78"
                    625: 
                    626: # elif defined(__ICCRISCV__)
                    627: #  define ARCHITECTURE_ID "RISCV"
                    628: 
                    629: # elif defined(__ICCAVR__)
                    630: #  define ARCHITECTURE_ID "AVR"
                    631: 
                    632: # elif defined(__ICC430__)
                    633: #  define ARCHITECTURE_ID "MSP430"
                    634: 
                    635: # elif defined(__ICCV850__)
                    636: #  define ARCHITECTURE_ID "V850"
                    637: 
                    638: # elif defined(__ICC8051__)
                    639: #  define ARCHITECTURE_ID "8051"
                    640: 
                    641: # elif defined(__ICCSTM8__)
                    642: #  define ARCHITECTURE_ID "STM8"
                    643: 
                    644: # else /* unknown architecture */
                    645: #  define ARCHITECTURE_ID ""
                    646: # endif
                    647: 
                    648: #elif defined(__ghs__)
                    649: # if defined(__PPC64__)
                    650: #  define ARCHITECTURE_ID "PPC64"
                    651: 
                    652: # elif defined(__ppc__)
                    653: #  define ARCHITECTURE_ID "PPC"
                    654: 
                    655: # elif defined(__ARM__)
                    656: #  define ARCHITECTURE_ID "ARM"
                    657: 
                    658: # elif defined(__x86_64__)
                    659: #  define ARCHITECTURE_ID "x64"
                    660: 
                    661: # elif defined(__i386__)
                    662: #  define ARCHITECTURE_ID "X86"
                    663: 
                    664: # else /* unknown architecture */
                    665: #  define ARCHITECTURE_ID ""
                    666: # endif
                    667: 
                    668: #elif defined(__clang__) && defined(__ti__)
                    669: # if defined(__ARM_ARCH)
                    670: #  define ARCHITECTURE_ID "Arm"
                    671: 
                    672: # else /* unknown architecture */
                    673: #  define ARCHITECTURE_ID ""
                    674: # endif
                    675: 
                    676: #elif defined(__TI_COMPILER_VERSION__)
                    677: # if defined(__TI_ARM__)
                    678: #  define ARCHITECTURE_ID "ARM"
                    679: 
                    680: # elif defined(__MSP430__)
                    681: #  define ARCHITECTURE_ID "MSP430"
                    682: 
                    683: # elif defined(__TMS320C28XX__)
                    684: #  define ARCHITECTURE_ID "TMS320C28x"
                    685: 
                    686: # elif defined(__TMS320C6X__) || defined(_TMS320C6X)
                    687: #  define ARCHITECTURE_ID "TMS320C6x"
                    688: 
                    689: # else /* unknown architecture */
                    690: #  define ARCHITECTURE_ID ""
                    691: # endif
                    692: 
                    693: # elif defined(__ADSPSHARC__)
                    694: #  define ARCHITECTURE_ID "SHARC"
                    695: 
                    696: # elif defined(__ADSPBLACKFIN__)
                    697: #  define ARCHITECTURE_ID "Blackfin"
                    698: 
                    699: #elif defined(__TASKING__)
                    700: 
                    701: # if defined(__CTC__) || defined(__CPTC__)
                    702: #  define ARCHITECTURE_ID "TriCore"
                    703: 
                    704: # elif defined(__CMCS__)
                    705: #  define ARCHITECTURE_ID "MCS"
                    706: 
                    707: # elif defined(__CARM__)
                    708: #  define ARCHITECTURE_ID "ARM"
                    709: 
                    710: # elif defined(__CARC__)
                    711: #  define ARCHITECTURE_ID "ARC"
                    712: 
                    713: # elif defined(__C51__)
                    714: #  define ARCHITECTURE_ID "8051"
                    715: 
                    716: # elif defined(__CPCP__)
                    717: #  define ARCHITECTURE_ID "PCP"
                    718: 
                    719: # else
                    720: #  define ARCHITECTURE_ID ""
                    721: # endif
                    722: 
                    723: #else
                    724: #  define ARCHITECTURE_ID
                    725: #endif
                    726: 
                    727: /* Convert integer to decimal digit literals.  */
                    728: #define DEC(n)                   \
                    729:   ('0' + (((n) / 10000000)%10)), \
                    730:   ('0' + (((n) / 1000000)%10)),  \
                    731:   ('0' + (((n) / 100000)%10)),   \
                    732:   ('0' + (((n) / 10000)%10)),    \
                    733:   ('0' + (((n) / 1000)%10)),     \
                    734:   ('0' + (((n) / 100)%10)),      \
                    735:   ('0' + (((n) / 10)%10)),       \
                    736:   ('0' +  ((n) % 10))
                    737: 
                    738: /* Convert integer to hex digit literals.  */
                    739: #define HEX(n)             \
                    740:   ('0' + ((n)>>28 & 0xF)), \
                    741:   ('0' + ((n)>>24 & 0xF)), \
                    742:   ('0' + ((n)>>20 & 0xF)), \
                    743:   ('0' + ((n)>>16 & 0xF)), \
                    744:   ('0' + ((n)>>12 & 0xF)), \
                    745:   ('0' + ((n)>>8  & 0xF)), \
                    746:   ('0' + ((n)>>4  & 0xF)), \
                    747:   ('0' + ((n)     & 0xF))
                    748: 
                    749: /* Construct a string literal encoding the version number. */
                    750: #ifdef COMPILER_VERSION
                    751: char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
                    752: 
                    753: /* Construct a string literal encoding the version number components. */
                    754: #elif defined(COMPILER_VERSION_MAJOR)
                    755: char const info_version[] = {
                    756:   'I', 'N', 'F', 'O', ':',
                    757:   'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
                    758:   COMPILER_VERSION_MAJOR,
                    759: # ifdef COMPILER_VERSION_MINOR
                    760:   '.', COMPILER_VERSION_MINOR,
                    761: #  ifdef COMPILER_VERSION_PATCH
                    762:    '.', COMPILER_VERSION_PATCH,
                    763: #   ifdef COMPILER_VERSION_TWEAK
                    764:     '.', COMPILER_VERSION_TWEAK,
                    765: #   endif
                    766: #  endif
                    767: # endif
                    768:   ']','\0'};
                    769: #endif
                    770: 
                    771: /* Construct a string literal encoding the internal version number. */
                    772: #ifdef COMPILER_VERSION_INTERNAL
                    773: char const info_version_internal[] = {
                    774:   'I', 'N', 'F', 'O', ':',
                    775:   'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
                    776:   'i','n','t','e','r','n','a','l','[',
                    777:   COMPILER_VERSION_INTERNAL,']','\0'};
                    778: #elif defined(COMPILER_VERSION_INTERNAL_STR)
                    779: char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
                    780: #endif
                    781: 
                    782: /* Construct a string literal encoding the version number components. */
                    783: #ifdef SIMULATE_VERSION_MAJOR
                    784: char const info_simulate_version[] = {
                    785:   'I', 'N', 'F', 'O', ':',
                    786:   's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
                    787:   SIMULATE_VERSION_MAJOR,
                    788: # ifdef SIMULATE_VERSION_MINOR
                    789:   '.', SIMULATE_VERSION_MINOR,
                    790: #  ifdef SIMULATE_VERSION_PATCH
                    791:    '.', SIMULATE_VERSION_PATCH,
                    792: #   ifdef SIMULATE_VERSION_TWEAK
                    793:     '.', SIMULATE_VERSION_TWEAK,
                    794: #   endif
                    795: #  endif
                    796: # endif
                    797:   ']','\0'};
                    798: #endif
                    799: 
                    800: /* Construct the string literal in pieces to prevent the source from
                    801:    getting matched.  Store it in a pointer rather than an array
                    802:    because some compilers will just produce instructions to fill the
                    803:    array rather than assigning a pointer to a static array.  */
                    804: char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
                    805: char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
                    806: 
                    807: 
                    808: 
                    809: #define CXX_STD_98 199711L
                    810: #define CXX_STD_11 201103L
                    811: #define CXX_STD_14 201402L
                    812: #define CXX_STD_17 201703L
                    813: #define CXX_STD_20 202002L
                    814: #define CXX_STD_23 202302L
                    815: 
                    816: #if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
                    817: #  if _MSVC_LANG > CXX_STD_17
                    818: #    define CXX_STD _MSVC_LANG
                    819: #  elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
                    820: #    define CXX_STD CXX_STD_20
                    821: #  elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
                    822: #    define CXX_STD CXX_STD_20
                    823: #  elif _MSVC_LANG > CXX_STD_14
                    824: #    define CXX_STD CXX_STD_17
                    825: #  elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
                    826: #    define CXX_STD CXX_STD_14
                    827: #  elif defined(__INTEL_CXX11_MODE__)
                    828: #    define CXX_STD CXX_STD_11
                    829: #  else
                    830: #    define CXX_STD CXX_STD_98
                    831: #  endif
                    832: #elif defined(_MSC_VER) && defined(_MSVC_LANG)
                    833: #  if _MSVC_LANG > __cplusplus
                    834: #    define CXX_STD _MSVC_LANG
                    835: #  else
                    836: #    define CXX_STD __cplusplus
                    837: #  endif
                    838: #elif defined(__NVCOMPILER)
                    839: #  if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
                    840: #    define CXX_STD CXX_STD_20
                    841: #  else
                    842: #    define CXX_STD __cplusplus
                    843: #  endif
                    844: #elif defined(__INTEL_COMPILER) || defined(__PGI)
                    845: #  if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
                    846: #    define CXX_STD CXX_STD_17
                    847: #  elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
                    848: #    define CXX_STD CXX_STD_14
                    849: #  else
                    850: #    define CXX_STD __cplusplus
                    851: #  endif
                    852: #elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
                    853: #  if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
                    854: #    define CXX_STD CXX_STD_14
                    855: #  else
                    856: #    define CXX_STD __cplusplus
                    857: #  endif
                    858: #elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
                    859: #  define CXX_STD CXX_STD_11
                    860: #else
                    861: #  define CXX_STD __cplusplus
                    862: #endif
                    863: 
                    864: const char* info_language_standard_default = "INFO" ":" "standard_default["
                    865: #if CXX_STD > CXX_STD_23
                    866:   "26"
                    867: #elif CXX_STD > CXX_STD_20
                    868:   "23"
                    869: #elif CXX_STD > CXX_STD_17
                    870:   "20"
                    871: #elif CXX_STD > CXX_STD_14
                    872:   "17"
                    873: #elif CXX_STD > CXX_STD_11
                    874:   "14"
                    875: #elif CXX_STD >= CXX_STD_11
                    876:   "11"
                    877: #else
                    878:   "98"
                    879: #endif
                    880: "]";
                    881: 
                    882: const char* info_language_extensions_default = "INFO" ":" "extensions_default["
                    883: #if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) ||           \
                    884:      defined(__TI_COMPILER_VERSION__)) &&                                     \
                    885:   !defined(__STRICT_ANSI__)
                    886:   "ON"
                    887: #else
                    888:   "OFF"
                    889: #endif
                    890: "]";
                    891: 
                    892: /*--------------------------------------------------------------------------*/
                    893: 
                    894: int main(int argc, char* argv[])
                    895: {
                    896:   int require = 0;
                    897:   require += info_compiler[argc];
                    898:   require += info_platform[argc];
                    899:   require += info_arch[argc];
                    900: #ifdef COMPILER_VERSION_MAJOR
                    901:   require += info_version[argc];
                    902: #endif
                    903: #ifdef COMPILER_VERSION_INTERNAL
                    904:   require += info_version_internal[argc];
                    905: #endif
                    906: #ifdef SIMULATE_ID
                    907:   require += info_simulate[argc];
                    908: #endif
                    909: #ifdef SIMULATE_VERSION_MAJOR
                    910:   require += info_simulate_version[argc];
                    911: #endif
                    912: #if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
                    913:   require += info_cray[argc];
                    914: #endif
                    915:   require += info_language_standard_default[argc];
                    916:   require += info_language_extensions_default[argc];
                    917:   (void)argv;
                    918:   return require;
                    919: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>