Fix libsanitizer build on OS X 10.1[01], macOS 10.12 (PR sanitizer/78267)
[gcc.git] / fixincludes / fixincl.x
index 383381176905d8a816f500fd39ebfaa65001ea36..00d03be8ffe8eac6e7f88b73e47e250ef13eb654 100644 (file)
@@ -2,11 +2,11 @@
  * 
  * DO NOT EDIT THIS FILE   (fixincl.x)
  * 
- * It has been AutoGen-ed  Sunday January 31, 2016 at 07:52:05 PM EST
+ * It has been AutoGen-ed  November 20, 2016 at 11:44:36 AM by AutoGen 5.16.2
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Sun 31 Jan 2016 19:52:05 EST
+/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Nov 20 11:44:37 MET 2016
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -15,7 +15,7 @@
  * certain ANSI-incompatible system header files which are fixed to work
  * correctly with ANSI C and placed in a directory that GNU C will search.
  *
- * This file contains 231 fixup descriptions.
+ * This file contains 241 fixup descriptions.
  *
  * See README for more information.
  *
@@ -1545,6 +1545,154 @@ static const char* apzAix_Stdio_InlinePatch[] = {
 #ifdef ferror\n",
     (char*)NULL };
 
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Aix_Stdlib_Malloc fix
+ */
+tSCC zAix_Stdlib_MallocName[] =
+     "aix_stdlib_malloc";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zAix_Stdlib_MallocList[] =
+  "stdlib.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdlib_MallocMachs[] = {
+        "*-*-aix*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdlib_MallocSelect0[] =
+       "#define[ \t]+malloc[ \t]+__linux_malloc";
+
+#define    AIX_STDLIB_MALLOC_TEST_CT  1
+static tTestDesc aAix_Stdlib_MallocTests[] = {
+  { TT_EGREP,    zAix_Stdlib_MallocSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Aix_Stdlib_Malloc
+ */
+static const char* apzAix_Stdlib_MallocPatch[] = {
+    "format",
+    "extern void *malloc(size_t) __asm__(\"__linux_malloc\");",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Aix_Stdlib_Realloc fix
+ */
+tSCC zAix_Stdlib_ReallocName[] =
+     "aix_stdlib_realloc";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zAix_Stdlib_ReallocList[] =
+  "stdlib.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdlib_ReallocMachs[] = {
+        "*-*-aix*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdlib_ReallocSelect0[] =
+       "#define[ \t]+realloc[ \t]+__linux_realloc";
+
+#define    AIX_STDLIB_REALLOC_TEST_CT  1
+static tTestDesc aAix_Stdlib_ReallocTests[] = {
+  { TT_EGREP,    zAix_Stdlib_ReallocSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Aix_Stdlib_Realloc
+ */
+static const char* apzAix_Stdlib_ReallocPatch[] = {
+    "format",
+    "extern void *realloc(void *, size_t) __asm__(\"__linux_realloc\");",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Aix_Stdlib_Calloc fix
+ */
+tSCC zAix_Stdlib_CallocName[] =
+     "aix_stdlib_calloc";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zAix_Stdlib_CallocList[] =
+  "stdlib.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdlib_CallocMachs[] = {
+        "*-*-aix*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdlib_CallocSelect0[] =
+       "#define[ \t]+calloc[ \t]+__linux_calloc";
+
+#define    AIX_STDLIB_CALLOC_TEST_CT  1
+static tTestDesc aAix_Stdlib_CallocTests[] = {
+  { TT_EGREP,    zAix_Stdlib_CallocSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Aix_Stdlib_Calloc
+ */
+static const char* apzAix_Stdlib_CallocPatch[] = {
+    "format",
+    "extern void *calloc(size_t, size_t) __asm__(\"__linux_calloc\");",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Aix_Stdlib_Valloc fix
+ */
+tSCC zAix_Stdlib_VallocName[] =
+     "aix_stdlib_valloc";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zAix_Stdlib_VallocList[] =
+  "stdlib.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzAix_Stdlib_VallocMachs[] = {
+        "*-*-aix*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zAix_Stdlib_VallocSelect0[] =
+       "#define[ \t]+valloc[ \t]+__linux_valloc";
+
+#define    AIX_STDLIB_VALLOC_TEST_CT  1
+static tTestDesc aAix_Stdlib_VallocTests[] = {
+  { TT_EGREP,    zAix_Stdlib_VallocSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Aix_Stdlib_Valloc
+ */
+static const char* apzAix_Stdlib_VallocPatch[] = {
+    "format",
+    "extern void *valloc(size_t) __asm__(\"__linux_valloc\");",
+    (char*)NULL };
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  Description of Aix_Strtof_Const fix
@@ -2429,6 +2577,51 @@ extern \"C\" {\n\
 #endif\n",
     (char*)NULL };
 
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Darwin_Availabilityinternal fix
+ */
+tSCC zDarwin_AvailabilityinternalName[] =
+     "darwin_availabilityinternal";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zDarwin_AvailabilityinternalList[] =
+  "AvailabilityInternal.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_AvailabilityinternalMachs[] = {
+        "*-*-darwin*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_AvailabilityinternalSelect0[] =
+       "#define[ \t]+(__API_[ADU]\\([^)]*\\)).*";
+
+#define    DARWIN_AVAILABILITYINTERNAL_TEST_CT  1
+static tTestDesc aDarwin_AvailabilityinternalTests[] = {
+  { TT_EGREP,    zDarwin_AvailabilityinternalSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Darwin_Availabilityinternal
+ */
+static const char* apzDarwin_AvailabilityinternalPatch[] = {
+    "format",
+    "#if defined(__has_attribute)\n\
+  #if __has_attribute(availability)\n\
+%0\n\
+  #else\n\
+    #define %1\n\
+  #endif\n\
+#else\n\
+    #define %1\n\
+#endif",
+    (char*)NULL };
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  Description of Darwin_9_Long_Double_Funcs_2 fix
@@ -2549,6 +2742,168 @@ static const char* apzDarwin_Gcc4_BreakagePatch[] = {
     "((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))",
     (char*)NULL };
 
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Darwin_Longjmp_Noreturn fix
+ */
+tSCC zDarwin_Longjmp_NoreturnName[] =
+     "darwin_longjmp_noreturn";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zDarwin_Longjmp_NoreturnList[] =
+  "i386/setjmp.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Longjmp_NoreturnMachs[] = {
+        "*-*-darwin*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Longjmp_NoreturnSelect0[] =
+       "(.*longjmp\\(.*jmp_buf.*[^)]+\\));";
+
+/*
+ *  content bypass pattern - skip fix if pattern found
+ */
+tSCC zDarwin_Longjmp_NoreturnBypass0[] =
+       "__dead2";
+
+#define    DARWIN_LONGJMP_NORETURN_TEST_CT  2
+static tTestDesc aDarwin_Longjmp_NoreturnTests[] = {
+  { TT_NEGREP,   zDarwin_Longjmp_NoreturnBypass0, (regex_t*)NULL },
+  { TT_EGREP,    zDarwin_Longjmp_NoreturnSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Darwin_Longjmp_Noreturn
+ */
+static const char* apzDarwin_Longjmp_NoreturnPatch[] = {
+    "format",
+    "%1 __attribute__ ((__noreturn__));",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Darwin_Os_Trace_1 fix
+ */
+tSCC zDarwin_Os_Trace_1Name[] =
+     "darwin_os_trace_1";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zDarwin_Os_Trace_1List[] =
+  "os/trace.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Os_Trace_1Machs[] = {
+        "*-*-darwin*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Os_Trace_1Select0[] =
+       "^(_os_trace_verify_printf.*) (__attribute__.*)";
+
+#define    DARWIN_OS_TRACE_1_TEST_CT  1
+static tTestDesc aDarwin_Os_Trace_1Tests[] = {
+  { TT_EGREP,    zDarwin_Os_Trace_1Select0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Darwin_Os_Trace_1
+ */
+static const char* apzDarwin_Os_Trace_1Patch[] = {
+    "format",
+    "%1",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Darwin_Os_Trace_2 fix
+ */
+tSCC zDarwin_Os_Trace_2Name[] =
+     "darwin_os_trace_2";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zDarwin_Os_Trace_2List[] =
+  "os/trace.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Os_Trace_2Machs[] = {
+        "*-*-darwin*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Os_Trace_2Select0[] =
+       "typedef.*\\^os_trace_payload_t.*";
+
+#define    DARWIN_OS_TRACE_2_TEST_CT  1
+static tTestDesc aDarwin_Os_Trace_2Tests[] = {
+  { TT_EGREP,    zDarwin_Os_Trace_2Select0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Darwin_Os_Trace_2
+ */
+static const char* apzDarwin_Os_Trace_2Patch[] = {
+    "format",
+    "#if __BLOCKS__\n\
+%0\n\
+#endif",
+    (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Darwin_Os_Trace_3 fix
+ */
+tSCC zDarwin_Os_Trace_3Name[] =
+     "darwin_os_trace_3";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zDarwin_Os_Trace_3List[] =
+  "os/trace.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Os_Trace_3Machs[] = {
+        "*-*-darwin*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zDarwin_Os_Trace_3Select0[] =
+       "__(API|OSX)_.*\n\
+OS_EXPORT.*\n\
+.*\n\
+_os_trace.*os_trace_payload_t payload);";
+
+#define    DARWIN_OS_TRACE_3_TEST_CT  1
+static tTestDesc aDarwin_Os_Trace_3Tests[] = {
+  { TT_EGREP,    zDarwin_Os_Trace_3Select0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Darwin_Os_Trace_3
+ */
+static const char* apzDarwin_Os_Trace_3Patch[] = {
+    "format",
+    "#if __BLOCKS__\n\
+%0\n\
+#endif",
+    (char*)NULL };
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  Description of Darwin_Private_Extern fix
@@ -4891,6 +5246,43 @@ static const char* apzHpux_Stdint_Least_FastPatch[] = {
     "#  define\tUINT_%164_MAX\t__UINT64_MAX__",
     (char*)NULL };
 
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ *  Description of Hpux_Longjmp fix
+ */
+tSCC zHpux_LongjmpName[] =
+     "hpux_longjmp";
+
+/*
+ *  File name selection pattern
+ */
+tSCC zHpux_LongjmpList[] =
+  "setjmp.h\0";
+/*
+ *  Machine/OS name selection pattern
+ */
+tSCC* apzHpux_LongjmpMachs[] = {
+        "*-hp-hpux*",
+        (const char*)NULL };
+
+/*
+ *  content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_LongjmpSelect0[] =
+       "^[ \t]*extern[ \t]+void[ \t]+.*longjmp[ \t]*(__\\(\\(.*int\\)\\)|\\(.*int\\)|\\(\\))";
+
+#define    HPUX_LONGJMP_TEST_CT  1
+static tTestDesc aHpux_LongjmpTests[] = {
+  { TT_EGREP,    zHpux_LongjmpSelect0, (regex_t*)NULL }, };
+
+/*
+ *  Fix Command Arguments for Hpux_Longjmp
+ */
+static const char* apzHpux_LongjmpPatch[] = {
+    "format",
+    "%0 __attribute__ ((__noreturn__))",
+    (char*)NULL };
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * *
  *
  *  Description of Hpux_Systime fix
@@ -9485,9 +9877,9 @@ static const char* apzX11_SprintfPatch[] = {
  *
  *  List of all fixes
  */
-#define REGEX_COUNT          268
+#define REGEX_COUNT          279
 #define MACH_LIST_SIZE_LIMIT 187
-#define FIX_COUNT            231
+#define FIX_COUNT            241
 
 /*
  *  Enumerate the fixes
@@ -9525,6 +9917,10 @@ typedef enum {
     AIX_STDINT_4_FIXIDX,
     AIX_STDINT_5_FIXIDX,
     AIX_STDIO_INLINE_FIXIDX,
+    AIX_STDLIB_MALLOC_FIXIDX,
+    AIX_STDLIB_REALLOC_FIXIDX,
+    AIX_STDLIB_CALLOC_FIXIDX,
+    AIX_STDLIB_VALLOC_FIXIDX,
     AIX_STRTOF_CONST_FIXIDX,
     AIX_SYSMACHINE_FIXIDX,
     AIX_SYSWAIT_2_FIXIDX,
@@ -9548,9 +9944,14 @@ typedef enum {
     CTRL_QUOTES_DEF_FIXIDX,
     CTRL_QUOTES_USE_FIXIDX,
     CXX_UNREADY_FIXIDX,
+    DARWIN_AVAILABILITYINTERNAL_FIXIDX,
     DARWIN_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
     DARWIN_EXTERNC_FIXIDX,
     DARWIN_GCC4_BREAKAGE_FIXIDX,
+    DARWIN_LONGJMP_NORETURN_FIXIDX,
+    DARWIN_OS_TRACE_1_FIXIDX,
+    DARWIN_OS_TRACE_2_FIXIDX,
+    DARWIN_OS_TRACE_3_FIXIDX,
     DARWIN_PRIVATE_EXTERN_FIXIDX,
     DARWIN_STDINT_1_FIXIDX,
     DARWIN_STDINT_2_FIXIDX,
@@ -9608,6 +10009,7 @@ typedef enum {
     HPUX_PTHREAD_INITIALIZERS_FIXIDX,
     HPUX_SPU_INFO_FIXIDX,
     HPUX_STDINT_LEAST_FAST_FIXIDX,
+    HPUX_LONGJMP_FIXIDX,
     HPUX_SYSTIME_FIXIDX,
     HUGE_VAL_HEX_FIXIDX,
     HUGE_VALF_HEX_FIXIDX,
@@ -9887,6 +10289,26 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
      AIX_STDIO_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
      aAix_Stdio_InlineTests,   apzAix_Stdio_InlinePatch, 0 },
 
+  {  zAix_Stdlib_MallocName,    zAix_Stdlib_MallocList,
+     apzAix_Stdlib_MallocMachs,
+     AIX_STDLIB_MALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aAix_Stdlib_MallocTests,   apzAix_Stdlib_MallocPatch, 0 },
+
+  {  zAix_Stdlib_ReallocName,    zAix_Stdlib_ReallocList,
+     apzAix_Stdlib_ReallocMachs,
+     AIX_STDLIB_REALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aAix_Stdlib_ReallocTests,   apzAix_Stdlib_ReallocPatch, 0 },
+
+  {  zAix_Stdlib_CallocName,    zAix_Stdlib_CallocList,
+     apzAix_Stdlib_CallocMachs,
+     AIX_STDLIB_CALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aAix_Stdlib_CallocTests,   apzAix_Stdlib_CallocPatch, 0 },
+
+  {  zAix_Stdlib_VallocName,    zAix_Stdlib_VallocList,
+     apzAix_Stdlib_VallocMachs,
+     AIX_STDLIB_VALLOC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aAix_Stdlib_VallocTests,   apzAix_Stdlib_VallocPatch, 0 },
+
   {  zAix_Strtof_ConstName,    zAix_Strtof_ConstList,
      apzAix_Strtof_ConstMachs,
      AIX_STRTOF_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -10002,6 +10424,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
      CXX_UNREADY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
      aCxx_UnreadyTests,   apzCxx_UnreadyPatch, 0 },
 
+  {  zDarwin_AvailabilityinternalName,    zDarwin_AvailabilityinternalList,
+     apzDarwin_AvailabilityinternalMachs,
+     DARWIN_AVAILABILITYINTERNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aDarwin_AvailabilityinternalTests,   apzDarwin_AvailabilityinternalPatch, 0 },
+
   {  zDarwin_9_Long_Double_Funcs_2Name,    zDarwin_9_Long_Double_Funcs_2List,
      apzDarwin_9_Long_Double_Funcs_2Machs,
      DARWIN_9_LONG_DOUBLE_FUNCS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -10017,6 +10444,26 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
      DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
      aDarwin_Gcc4_BreakageTests,   apzDarwin_Gcc4_BreakagePatch, 0 },
 
+  {  zDarwin_Longjmp_NoreturnName,    zDarwin_Longjmp_NoreturnList,
+     apzDarwin_Longjmp_NoreturnMachs,
+     DARWIN_LONGJMP_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aDarwin_Longjmp_NoreturnTests,   apzDarwin_Longjmp_NoreturnPatch, 0 },
+
+  {  zDarwin_Os_Trace_1Name,    zDarwin_Os_Trace_1List,
+     apzDarwin_Os_Trace_1Machs,
+     DARWIN_OS_TRACE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aDarwin_Os_Trace_1Tests,   apzDarwin_Os_Trace_1Patch, 0 },
+
+  {  zDarwin_Os_Trace_2Name,    zDarwin_Os_Trace_2List,
+     apzDarwin_Os_Trace_2Machs,
+     DARWIN_OS_TRACE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aDarwin_Os_Trace_2Tests,   apzDarwin_Os_Trace_2Patch, 0 },
+
+  {  zDarwin_Os_Trace_3Name,    zDarwin_Os_Trace_3List,
+     apzDarwin_Os_Trace_3Machs,
+     DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aDarwin_Os_Trace_3Tests,   apzDarwin_Os_Trace_3Patch, 0 },
+
   {  zDarwin_Private_ExternName,    zDarwin_Private_ExternList,
      apzDarwin_Private_ExternMachs,
      DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -10302,6 +10749,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
      HPUX_STDINT_LEAST_FAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
      aHpux_Stdint_Least_FastTests,   apzHpux_Stdint_Least_FastPatch, 0 },
 
+  {  zHpux_LongjmpName,    zHpux_LongjmpList,
+     apzHpux_LongjmpMachs,
+     HPUX_LONGJMP_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+     aHpux_LongjmpTests,   apzHpux_LongjmpPatch, 0 },
+
   {  zHpux_SystimeName,    zHpux_SystimeList,
      apzHpux_SystimeMachs,
      HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,