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

Launcher should not enable legacy stdio streams on GNU/Linux (glibc)

    Details

    • Subcomponent:
    • Resolved In Build:
      b01
    • CPU:
      x86
    • OS:
      linux

      Description

      On glibc platforms which support the GLIBC_2.0 symbol version (notably i386), the launcher is linked in such a way that it enables the legacy stdio streams. This can cause interoperability issues with JNI libraries that try to use wide streams, and may also result in crashes on recent glibc versions until bug 24228 is fixed.

      This issue caused by the linker script not exporting any symbols (via the local: *; directive). Unfortunately, this includes the _IO_stdin_used symbol, which current glibc binaries use to detect that the binary is new enough to deal with wide-capable stdio streams.

        Attachments

          Activity

            People

            • Assignee:
              sgehwolf Severin Gehwolf
              Reporter:
              fweimer Florian Weimer
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: