GCC: getcontext/makecontext/setcontext/swapcontext usage analysis.
[hurd-web.git] / open_issues / gnat.mdwn
index 0f404b8..84e8f60 100644 (file)
@@ -103,6 +103,55 @@ know if the port has yet seen any real-world usage, such as using it for any
 bigger Ada code bases, or any Ada testsuites.
 
 
+## `getcontext`/`makecontext`/`setcontext`/`swapcontext` usage analysis
+
+In context of [[glibc/t/tls-threadvar]].  Looking at GCC trunk commit
+f6568ea476aa52a6e23c6db43b3e240cde55783a (2013-04-26).
+
+    gcc/ada/init.c:  sigaltstack (&stack, NULL);
+    gcc/ada/init.c:      sigaltstack (&stack, NULL);
+    gcc/ada/init.c:  sigaltstack (&stack, NULL);
+    gcc/ada/s-osinte-aix.ads:   function sigaltstack
+    gcc/ada/s-osinte-aix.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-android.ads:   function sigaltstack
+    gcc/ada/s-osinte-android.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-darwin.ads:   function sigaltstack
+    gcc/ada/s-osinte-darwin.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-freebsd.ads:   function sigaltstack
+    gcc/ada/s-osinte-freebsd.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-hpux.ads:   function sigaltstack
+    gcc/ada/s-osinte-hpux.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-kfreebsd-gnu.ads:   function sigaltstack
+    gcc/ada/s-osinte-kfreebsd-gnu.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-linux.ads:   function sigaltstack
+    gcc/ada/s-osinte-linux.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-osinte-rtems.adb:   -- sigaltstack --
+    gcc/ada/s-osinte-rtems.adb:   function sigaltstack
+    gcc/ada/s-osinte-rtems.adb:   end sigaltstack;
+    gcc/ada/s-osinte-rtems.ads:   function sigaltstack
+    gcc/ada/s-osinte-solaris-posix.ads:   function sigaltstack
+    gcc/ada/s-osinte-solaris-posix.ads:   pragma Import (C, sigaltstack, "sigaltstack");
+    gcc/ada/s-taprop-linux.adb:            Result := sigaltstack (Stack'Access, null);
+    gcc/ada/s-taprop-posix.adb:            Result := sigaltstack (Stack'Access, null);
+    gcc/ada/init.c:  stack.ss_sp = __gnat_alternate_stack;
+    gcc/ada/init.c:      stack.ss_sp = __gnat_alternate_stack;
+    gcc/ada/init.c:  stack.ss_sp = __gnat_alternate_stack;
+    gcc/ada/s-osinte-aix.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-android.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-darwin.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-darwin.ads:      uc_stack    : stack_t;          --  Stack Used By This Context
+    gcc/ada/s-osinte-freebsd.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-hpux.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-kfreebsd-gnu.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-linux.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-rtems.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-solaris-posix.ads:      ss_sp    : System.Address;
+    gcc/ada/s-osinte-solaris.ads:      ss_sp        : System.Address;
+    gcc/ada/s-osinte-solaris.ads:      uc_stack     : record_type_2;
+    gcc/ada/s-taprop-linux.adb:            Stack.ss_sp    := Self_ID.Common.Task_Alternate_Stack;
+    gcc/ada/s-taprop-posix.adb:            Stack.ss_sp    := Self_ID.Common.Task_Alternate_Stack;
+
+
 ---