Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8330539

Use #include <alloca.h> instead of -Dalloca'(size)'=__builtin_alloca'(size)' for AIX

XMLWordPrintable

    • b22

      We need to find a better way to handle alloca on AIX.

      See the discussion in the PR for https://bugs.openjdk.org/browse/JDK-8329257, e.g. https://github.com/openjdk/jdk/pull/18536#discussion_r1568650313 in which three alternatives are suggested. Quoting:

      Let me summarize the choices we have and ask for your vote.
      Magnus dislikes the -Dalloca'(size)'=__builtin_alloca'(size)' in flags-cflags.m4 I introduced to get rid of

      #if defined(_AIX)
      #include <alloca.h>
      #endif

      in globalDefinitions_gcc.hpp.

      We have four possible solutions

      1. Reintroduce

      #if defined(_AIX)
      #include <alloca.h>
      #endif

      in globalDefinitions_gcc.hpp.

      2. Unconditionally introduce only #include <alloca.h> in globalDefinitions_gcc.hpp. This should work for all platforms using this header including the unofficial Windows/gcc Port, although only AIX needs it.

      3. Add

      #if defined(_AIX)
      #include <alloca.h>
      #endif

      to the sources using alloca(). These are
      /hotspot/share/runtime/os.cpp
      /hotspot/share/runtime/javaThread.cpp
      /hotspot/share/utilities/vmError.cpp
      Here we need the AIX condition, because otherwise the classic Windows Build (NTAMD64) fails.

      4. Replace -Dalloca'(size)'=__builtin_alloca'(size)' in flags-cflags.m4 by -U__STRICT_ANSI__ at the same place. Explanation can also found in https://github.com/openjdk/jdk/pull/18536#discussion_r1583360569 and following.

      I will implement the solution with the most likes and having no dislike.

            jkern Joachim Kern
            ihse Magnus Ihse Bursie
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: