diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 224e7f0..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.pc/ diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f6f1cd2..7511001 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,6 +2,36 @@ This is the Changelog for Tomcat Native 1.2. + Changes in 1.2.35 + + * Docs: Document the TLS rengotiation behaviour. (markt) + * Docs: Add HOWTO-RELEASE.txt that describes the release process. + (markt) + * Update: Update recommended OpenSSL version to 1.1.1q or later. (markt) + + Changes in 1.2.34 + + * Code: Refactor library initialization so it is compatible with Tomcat + 10.1.x onwards where a number of Java classes have been removed. + (markt) + * Add: Map the OpenSSL 3.x FIPS behaviour to the OpenSSL 1.x API to + allow clients to determine if the FIPS provider is being used when + Tomcat Native is compiled against OpenSSL 3.x. (markt) + + Changes in 1.2.33 + + * Fix: 66035: Fix crash when attempting to read TLS session ID after a + handshake failure. (schultz/markt) + * Fix: Enable download_deps.sh to be called from any directory. Pull + request #12 provided by Dimitrios Soumis. (markt) + * Update: Update recommended OpenSSL version to 1.1.1o or later. (markt) + + Changes in 1.2.32 + + * Update: Update recommended OpenSSL version to 1.1.1n or later. (markt) + * Fix: Fix release script so it works with the current git layout. + (markt) + Changes in 1.2.31 * Fix: 65441: Correct previous fix that enabled building to continue @@ -58,7 +88,7 @@ * Add: Add support for HP-UX's _lwp_self() in our ssl_thread_id(void). (michaelo) Remove default option passed for rpath to linker on HP-UX. (michaelo) - * Add: Add an option to allow the OCSP responder check to by bypassed. + * Add: Add an option to allow the OCSP responder check to be bypassed. Note that if OCSP is enabled, a missing responder is now treated as an error. (jfclere) * Fix: 64429: Fix compilation with LibreSSL. (markt) @@ -338,4 +368,4 @@ Please see the 1.1.x changelog. - Copyright © 2008-2020, The Apache Software Foundation + Copyright © 2008-2022, The Apache Software Foundation diff --git a/HOWTO-RELEASE.txt b/HOWTO-RELEASE.txt new file mode 100644 index 0000000..b88349c --- /dev/null +++ b/HOWTO-RELEASE.txt @@ -0,0 +1,87 @@ +================================================================================ + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================ + +How to do a Tomcat Native release +================================= + +Requirements +------------ + +Java 8 +Apache Ant 1.9 or later +Apache APR 1.4.3 or later source (1.7.0 or later recommended) + + +Preparation +----------- + +Review the open issues in Bugzilla. +Review open PRs in GitHub. + +If you haven't already, add your public PGP key to KEYS. + +Ensure dates and/or version numbers are up to date: +- build.properties.default +- native/build/rpm/tcnative.spec.in +- native/include/tcn_version.h +- native/os/win32/libtcnative.rc +- xdocs/miscellaneous/changelog.xml + +Run the release script to check the Java code is aligned with the current 9.0.x +source. +./jnirelease.sh --ver=1.2.x --with-apr=/path/to/apr/source + +Switch back to the main branch +git checkout main + +Tagging +------- + +# Check clone is up to date and clean +git pull +git status + +# Edit files to remove / disable dev build flags +# - build.properties.default +# - tcn_version.h + +# Confirm the previous edits +git diff + +# Tag (modify version as appropriate) +git commit -a -m "Tag 1.2.35" +git tag 1.2.35 +git push origin 1.2.35 + +# Reset main +git reset --hard HEAD~1 + + +Create the source release +------------------------- + +# Modify version as appropriate +./jnirelease.sh --ver=1.2.35 --with-apr=/path/to/apr/source + +# Switch back to the main branch +git checkout main + + +Create the binary release for Windows +------------------------------------- + +See native/building diff --git a/NOTICE b/NOTICE index b21c25a..f50335a 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ Apache Tomcat Native Library -Copyright 2002-2020 The Apache Software Foundation +Copyright 2002-2022 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). diff --git a/TODO.txt b/TODO.txt index b3d06de..ea9c629 100644 --- a/TODO.txt +++ b/TODO.txt @@ -21,20 +21,6 @@ TODO -SSL Renegotiation ------------------ - -It is unclear to me, what the current state is. It looks like we support -the unsafe legacy reneg whenever the OpenSSL used during build time -supports it. There is no configuration option to switch it off during -runtime. Right? - -Is it correct, that client initiated reneg is not supported and thus the -known attacks will not work even with old OpenSSL? - -Should we add a remark about this topic to the docs? - - Java Tests and Examples ----------------------- @@ -60,21 +46,10 @@ Java Classes Source Distribution Check on how to handle the test and examples classes. I think they have no other home. -Furthermore some of the Java files do not exist inside TC: -- Apr.java, apr.properties, jni/Buffer.java and jni/Thread.java -I don't know their purpose and whether we can delete them. - Releasing --------- -- Document how to release. - -- Add info about updating config.guess and config.sub from - -http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - ZIP download seems to have group write permissions set (at least after I extract it on Solaris). It's a bit strange that permissions differ between the diff --git a/build.properties.default b/build.properties.default index ad387ae..d8a585a 100644 --- a/build.properties.default +++ b/build.properties.default @@ -18,7 +18,7 @@ # ----- Version Control Flags ----- version.major=1 version.minor=2 -version.build=31 +version.build=35 version.patch=0 version.suffix= diff --git a/build.xml b/build.xml index 1a1c832..afd1dfa 100644 --- a/build.xml +++ b/build.xml @@ -18,7 +18,7 @@ @@ -30,7 +30,7 @@ - + @@ -40,26 +40,24 @@ - - - - - - + + + + + - - - - - + + + + - + - + - + @@ -166,7 +164,7 @@ - - - - - - - - - - - - - - - - - - - - includeantruntime="false"> - - - - - - - @@ -270,24 +243,7 @@ limitations under the License.-->"> - - - - - - - - - - - - - - - - - - includeantruntime="false"> - - - - - - diff --git a/debian/changelog b/debian/changelog index ab2480a..9c1e0d1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +tomcat-native (1.2.35-1) unstable; urgency=medium + + * Team upload. + * New upstream version 1.2.35. + - Restore compatibility with Tomcat 10.1.x. (Closes: #1030871) + Thanks to Jorge Moraleda for the report. + * Declare compliance with Debian Policy 4.6.2. + + -- Markus Koschany Sun, 12 Feb 2023 18:35:01 +0100 + +tomcat-native (1.2.32-1) unstable; urgency=medium + + * Team upload. + * New upstream release + + -- Emmanuel Bourg Mon, 02 May 2022 19:03:02 +0200 + tomcat-native (1.2.31-1) unstable; urgency=medium * Team upload. diff --git a/debian/control b/debian/control index 4545fab..2d8df7f 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: dpkg-dev (>= 1.16.1~), libapr1-dev, libssl-dev -Standards-Version: 4.6.0.1 +Standards-Version: 4.6.2 Vcs-Git: https://salsa.debian.org/java-team/tomcat-native.git Vcs-Browser: https://salsa.debian.org/java-team/tomcat-native Homepage: http://tomcat.apache.org/native-doc/ diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..6d5ee1d --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +NOTICE diff --git a/docs/index.html b/docs/index.html index 6be85a1..05fe6b1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,5 +1,5 @@ -Apache Tomcat Native Library - Documentation Index

Documentation Index

Introduction

+Apache Tomcat Native Library - Documentation Index

Documentation Index

Introduction

The Apache Tomcat Native Library is an optional component for use with @@ -28,10 +28,10 @@

Headlines

\ No newline at end of file diff --git a/docs/miscellaneous/changelog.html b/docs/miscellaneous/changelog.html index c20ad84..5121268 100644 --- a/docs/miscellaneous/changelog.html +++ b/docs/miscellaneous/changelog.html @@ -1,8 +1,55 @@ -The Apache Tomcat Native - Miscellaneous Documentation -

Preface

+The Apache Tomcat Native - Miscellaneous Documentation -

Preface

This is the Changelog for Tomcat Native 1.2.

+

Changes in 1.2.35

+
    +
  • Docs: + Document the TLS rengotiation behaviour. (markt) +
  • +
  • Docs: + Add HOWTO-RELEASE.txt that describes the release process. (markt) +
  • +
  • Update: + Update recommended OpenSSL version to 1.1.1q or later. (markt) +
  • +
+

Changes in 1.2.34

+
    +
  • Code: + Refactor library initialization so it is compatible with Tomcat 10.1.x + onwards where a number of Java classes have been removed. (markt) +
  • +
  • Add: + Map the OpenSSL 3.x FIPS behaviour to the OpenSSL 1.x API to allow clients + to determine if the FIPS provider is being used when Tomcat Native is + compiled against OpenSSL 3.x. (markt) +
  • +
+

Changes in 1.2.33

+
    +
  • Fix: + 66035: Fix crash when attempting to read TLS session ID after a + handshake failure. (schultz/markt) +
  • +
  • Fix: + Enable download_deps.sh to be called from any directory. Pull + request #12 provided by Dimitrios Soumis. (markt) +
  • +
  • Update: + Update recommended OpenSSL version to 1.1.1o or later. (markt) +
  • +
+

Changes in 1.2.32

+
    +
  • Update: + Update recommended OpenSSL version to 1.1.1n or later. (markt) +
  • +
  • Fix: + Fix release script so it works with the current git layout. (markt) +
  • +

Changes in 1.2.31

  • Fix: @@ -91,7 +138,7 @@ Remove default option passed for rpath to linker on HP-UX. (michaelo)
  • Add: - Add an option to allow the OCSP responder check to by bypassed. Note that + Add an option to allow the OCSP responder check to be bypassed. Note that if OCSP is enabled, a missing responder is now treated as an error. (jfclere)
  • @@ -574,5 +621,5 @@

    Please see the 1.1.x changelog.

\ No newline at end of file diff --git a/docs/miscellaneous/tls-renegotiation.html b/docs/miscellaneous/tls-renegotiation.html new file mode 100644 index 0000000..29449fd --- /dev/null +++ b/docs/miscellaneous/tls-renegotiation.html @@ -0,0 +1,22 @@ + +The Apache Tomcat Native - Miscellaneous Documentation -

Introduction

+

+ Historically there have been security issues associated with TLS + renegotiation. This page describes the renegotiation behaviour of the Tomcat + Native library. +

+

Client initiated renegotiation

+

+ Client initiated renegotiation is disabled. This behaviour is hard-coded and + cannot be changed. +

+

Unsafe legacy negotiation

+

+ Support for unsafe legacy negotiation depends on OpenSSL. Unsafe legacy + renegotiation is disabled by default and will not be allowed unless the + OpenSSL configuration option + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION is set. +

+
\ No newline at end of file diff --git a/docs/news/2008.html b/docs/news/2008.html index 3ec33b6..98ed014 100644 --- a/docs/news/2008.html +++ b/docs/news/2008.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2008 News and Status

2008 News and Status

2008 News & Status

+The Apache Tomcat Native - News - 2008 News and Status

2008 News and Status

2008 News & Status

18 November - TC-Native-1.1.16 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.16. This is a stable release adding some bug fixes. @@ -24,5 +24,5 @@

\ No newline at end of file diff --git a/docs/news/2009.html b/docs/news/2009.html index 21044be..e5b8639 100644 --- a/docs/news/2009.html +++ b/docs/news/2009.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2009 News and Status

2009 News and Status

2009 News & Status

+The Apache Tomcat Native - News - 2009 News and Status

2009 News and Status

2009 News & Status

23 November - TC-Native-1.1.18 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.18. This is a stable release adding some bug fixes. @@ -8,5 +8,5 @@

\ No newline at end of file diff --git a/docs/news/2010.html b/docs/news/2010.html index 60dcb4a..a977f06 100644 --- a/docs/news/2010.html +++ b/docs/news/2010.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2010 News and Status

2010 News and Status

2010 News & Status

+The Apache Tomcat Native - News - 2010 News and Status

2010 News and Status

2010 News & Status

17 February - TC-Native-1.1.20 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.20. This is a stable release adding some bug fixes. @@ -13,5 +13,5 @@

\ No newline at end of file diff --git a/docs/news/2011.html b/docs/news/2011.html index c12a5a2..092d0fc 100644 --- a/docs/news/2011.html +++ b/docs/news/2011.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2011 News and Status

2011 News and Status

2011 News & Status

+The Apache Tomcat Native - News - 2011 News and Status

2011 News and Status

2011 News & Status

08 August - TC-Native-1.1.22 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.22. This is a stable release adding some bug fixes. @@ -9,5 +9,5 @@

\ No newline at end of file diff --git a/docs/news/2012.html b/docs/news/2012.html index b3acc89..2f0ced1 100644 --- a/docs/news/2012.html +++ b/docs/news/2012.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2012 News and Status

2012 News and Status

2012 News & Status

+The Apache Tomcat Native - News - 2012 News and Status

2012 News and Status

2012 News & Status

13 June - TC-Native-1.1.24 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.24. This is a feature-add release adding support for @@ -19,5 +19,5 @@

\ No newline at end of file diff --git a/docs/news/2013.html b/docs/news/2013.html index 5a7ee16..249ad6f 100644 --- a/docs/news/2013.html +++ b/docs/news/2013.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2013 News and Status

2013 News and Status

2013 News & Status

+The Apache Tomcat Native - News - 2013 News and Status

2013 News and Status

2013 News & Status

15 October - TC-Native-1.1.29 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.29. This is a bug fixing release. @@ -22,5 +22,5 @@

\ No newline at end of file diff --git a/docs/news/2014.html b/docs/news/2014.html index 4750a23..fbfbb6d 100644 --- a/docs/news/2014.html +++ b/docs/news/2014.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2014 News and Status

2014 News and Status

2014 News & Status

+The Apache Tomcat Native - News - 2014 News and Status

2014 News and Status

2014 News & Status

23 October 2014 - TC-Native-1.1.32 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.1.32. This release add support for TLSv1.1 and TLSv1.2 and @@ -19,5 +19,5 @@

\ No newline at end of file diff --git a/docs/news/2015.html b/docs/news/2015.html index a4e7a10..2e17788 100644 --- a/docs/news/2015.html +++ b/docs/news/2015.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2015 News and Status

2015 News and Status

2015 News & Status

+The Apache Tomcat Native - News - 2015 News and Status

2015 News and Status

2015 News & Status

12 Dec 2015 - TC-Native-1.2.3 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.3. This is a bug fix release and includes Windows @@ -26,5 +26,5 @@

\ No newline at end of file diff --git a/docs/news/2016.html b/docs/news/2016.html index b0f58a7..b178f89 100644 --- a/docs/news/2016.html +++ b/docs/news/2016.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2016 News and Status

2016 News and Status

2016 News & Status

+The Apache Tomcat Native - News - 2016 News and Status

2016 News and Status

2016 News & Status

5 October 2016 - TC-Native-1.2.10 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.10. This is a release to update dependencies for the @@ -39,5 +39,5 @@

\ No newline at end of file diff --git a/docs/news/2017.html b/docs/news/2017.html index a45b58b..283c9ef 100644 --- a/docs/news/2017.html +++ b/docs/news/2017.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2017 News and Status

2017 News and Status

2017 News & Status

+The Apache Tomcat Native - News - 2017 News and Status

2017 News and Status

2017 News & Status

20 Nov 2017 - TC-Native-1.2.16 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.16. This is a bugfix release that also updates the @@ -22,5 +22,5 @@

\ No newline at end of file diff --git a/docs/news/2018.html b/docs/news/2018.html index 51381a6..f14dd66 100644 --- a/docs/news/2018.html +++ b/docs/news/2018.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2018 News and Status

2018 News and Status

2018 News & Status

+The Apache Tomcat Native - News - 2018 News and Status

2018 News and Status

2018 News & Status

4 Dec 2018 - TC-Native-1.2.19 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.19. This is a bugfix release that also updates the @@ -22,5 +22,5 @@

\ No newline at end of file diff --git a/docs/news/2019.html b/docs/news/2019.html index 416379a..903da37 100644 --- a/docs/news/2019.html +++ b/docs/news/2019.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2019 News and Status

2019 News and Status

2019 News & Status

+The Apache Tomcat Native - News - 2019 News and Status

2019 News and Status

2019 News & Status

07 Jul 2019 - TC-Native-1.2.23 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.23. This is a bugfix release. @@ -11,5 +11,5 @@

\ No newline at end of file diff --git a/docs/news/2020.html b/docs/news/2020.html index 786f986..d11927e 100644 --- a/docs/news/2020.html +++ b/docs/news/2020.html @@ -1,5 +1,5 @@ -The Apache Tomcat Native - News - 2020 News and Status

2020 News and Status

2020 News & Status

+The Apache Tomcat Native - News - 2020 News and Status

2020 News and Status

2020 News & Status

21 Dec 2020 - TC-Native-1.2.26 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.26. This is a bugfix release. @@ -16,5 +16,5 @@

\ No newline at end of file diff --git a/docs/news/2021.html b/docs/news/2021.html index 8dfecbc..020512e 100644 --- a/docs/news/2021.html +++ b/docs/news/2021.html @@ -1,6 +1,6 @@ -The Apache Tomcat Native - News - 2021 News and Status

2021 News and Status

2021 News & Status

-

31 Aug 2021 - TC-Native-1.2.31 released

+The Apache Tomcat Native - News - 2021 News and Status

2021 News and Status

2021 News & Status

+

1 Sep 2021 - TC-Native-1.2.31 released

The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.31. This is a bugfix release.

@@ -21,5 +21,5 @@

\ No newline at end of file diff --git a/docs/news/2022.html b/docs/news/2022.html new file mode 100644 index 0000000..c9511f5 --- /dev/null +++ b/docs/news/2022.html @@ -0,0 +1,20 @@ + +The Apache Tomcat Native - News - 2022 News and Status

2022 News and Status

2022 News & Status

+

14 June 2022 - TC-Native-1.2.34 released

+

The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.34. This is a bugfix release. +

+
+

5 May 2022 - TC-Native-1.2.33 released

+

The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.33. This is a bugfix release. +

+
+

22 Mar 2022 - TC-Native-1.2.32 released

+

The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.32. This is a bugfix release. +

+
+
\ No newline at end of file diff --git a/java/org/apache/tomcat/apr.properties b/java/org/apache/tomcat/apr.properties deleted file mode 100644 index 4ac8c44..0000000 --- a/java/org/apache/tomcat/apr.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -tcn.info=Tomcat Native/@VERSION@ diff --git a/java/org/apache/tomcat/jni/BIOCallback.java b/java/org/apache/tomcat/jni/BIOCallback.java index ee13c70..ea9ccff 100644 --- a/java/org/apache/tomcat/jni/BIOCallback.java +++ b/java/org/apache/tomcat/jni/BIOCallback.java @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Open SSL BIO Callback Interface * * @author Mladen Turk + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ +@Deprecated public interface BIOCallback { /** diff --git a/java/org/apache/tomcat/jni/Buffer.java b/java/org/apache/tomcat/jni/Buffer.java index b79214e..a9d29ed 100644 --- a/java/org/apache/tomcat/jni/Buffer.java +++ b/java/org/apache/tomcat/jni/Buffer.java @@ -14,14 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; import java.nio.ByteBuffer; -/** Buffer - * - * @author Mladen Turk +/** + * Provides utilities related to the use of directly allocated + * {@link ByteBuffer} instances with native code. */ public class Buffer { @@ -29,7 +28,10 @@ public class Buffer { * Allocate a new ByteBuffer from memory * @param size The amount of memory to allocate * @return The ByteBuffer with allocated memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer malloc(int size); /** @@ -37,7 +39,10 @@ public class Buffer { * @param num Number of elements. * @param size Length in bytes of each element. * @return The ByteBuffer with allocated memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer calloc(int num, int size); /** @@ -45,7 +50,10 @@ public class Buffer { * @param p The pool to allocate from * @param size The amount of memory to allocate * @return The ByteBuffer with allocated memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer palloc(long p, int size); /** @@ -53,7 +61,10 @@ public class Buffer { * @param p The pool to allocate from * @param size The amount of memory to allocate * @return The ByteBuffer with allocated memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer pcalloc(long p, int size); /** @@ -63,7 +74,10 @@ public class Buffer { * @param mem The memory to use * @param size The amount of memory to use * @return The ByteBuffer with attached memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer create(long mem, int size); /** @@ -71,12 +85,17 @@ public class Buffer { *
Warning : Call this method only on ByteBuffers * that were created by calling Buffer.alloc or Buffer.calloc. * @param buf Previously allocated ByteBuffer to be freed. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void free(ByteBuffer buf); /** * Returns the memory address of the ByteBuffer. + * * @param buf Previously allocated ByteBuffer. + * * @return the memory address */ public static native long address(ByteBuffer buf); @@ -85,7 +104,10 @@ public class Buffer { * Returns the allocated memory size of the ByteBuffer. * @param buf Previously allocated ByteBuffer. * @return the size + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native long size(ByteBuffer buf); } diff --git a/java/org/apache/tomcat/jni/Directory.java b/java/org/apache/tomcat/jni/Directory.java index 2b3e081..473b87b 100644 --- a/java/org/apache/tomcat/jni/Directory.java +++ b/java/org/apache/tomcat/jni/Directory.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Directory diff --git a/java/org/apache/tomcat/jni/Error.java b/java/org/apache/tomcat/jni/Error.java index d543258..a72cc15 100644 --- a/java/org/apache/tomcat/jni/Error.java +++ b/java/org/apache/tomcat/jni/Error.java @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Error * * @author Mladen Turk + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ +@Deprecated public class Error extends Exception { private static final long serialVersionUID = 1L; diff --git a/java/org/apache/tomcat/jni/File.java b/java/org/apache/tomcat/jni/File.java index e86c282..3e0c3b1 100644 --- a/java/org/apache/tomcat/jni/File.java +++ b/java/org/apache/tomcat/jni/File.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /* Import needed classes */ import java.nio.ByteBuffer; diff --git a/java/org/apache/tomcat/jni/FileInfo.java b/java/org/apache/tomcat/jni/FileInfo.java index 8bd8549..34b67ff 100644 --- a/java/org/apache/tomcat/jni/FileInfo.java +++ b/java/org/apache/tomcat/jni/FileInfo.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Fileinfo diff --git a/java/org/apache/tomcat/jni/Global.java b/java/org/apache/tomcat/jni/Global.java index 05a85f3..7da6740 100644 --- a/java/org/apache/tomcat/jni/Global.java +++ b/java/org/apache/tomcat/jni/Global.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Global diff --git a/java/org/apache/tomcat/jni/Library.java b/java/org/apache/tomcat/jni/Library.java index a9849d3..b7febeb 100644 --- a/java/org/apache/tomcat/jni/Library.java +++ b/java/org/apache/tomcat/jni/Library.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; import java.io.File; @@ -26,7 +25,7 @@ public final class Library { /* Default library names */ - private static final String [] NAMES = {"tcnative-1", "libtcnative-1"}; + private static final String [] NAMES = {"tcnative-2", "libtcnative-2", "tcnative-1", "libtcnative-1"}; /* * A handle to the unique Library singleton instance. */ @@ -41,11 +40,7 @@ private Library() throws Exception { try { System.load(library.getAbsolutePath()); loaded = true; - } catch (ThreadDeath t) { - throw t; - } catch (VirtualMachineError t) { - // Don't use a Java 7 multiple exception catch so we can keep - // the JNI code identical between Tomcat 6/7/8/9 + } catch (ThreadDeath | VirtualMachineError t) { throw t; } catch (Throwable t) { if (library.exists()) { @@ -68,11 +63,7 @@ private Library() throws Exception { try { System.loadLibrary(value); loaded = true; - } catch (ThreadDeath t) { - throw t; - } catch (VirtualMachineError t) { - // Don't use a Java 7 multiple exception catch so we can keep - // the JNI code identical between Tomcat 6/7/8/9 + } catch (ThreadDeath | VirtualMachineError t) { throw t; } catch (Throwable t) { String name = System.mapLibraryName(value); @@ -146,54 +137,85 @@ private Library(String libraryName) public static native String aprVersionString(); /* APR Feature Macros */ + @Deprecated public static boolean APR_HAVE_IPV6 = false; + @Deprecated public static boolean APR_HAS_SHARED_MEMORY = false; + @Deprecated public static boolean APR_HAS_THREADS = false; + @Deprecated public static boolean APR_HAS_SENDFILE = false; + @Deprecated public static boolean APR_HAS_MMAP = false; + @Deprecated public static boolean APR_HAS_FORK = false; + @Deprecated public static boolean APR_HAS_RANDOM = false; + @Deprecated public static boolean APR_HAS_OTHER_CHILD = false; + @Deprecated public static boolean APR_HAS_DSO = false; + @Deprecated public static boolean APR_HAS_SO_ACCEPTFILTER = false; + @Deprecated public static boolean APR_HAS_UNICODE_FS = false; + @Deprecated public static boolean APR_HAS_PROC_INVOKED = false; + @Deprecated public static boolean APR_HAS_USER = false; + @Deprecated public static boolean APR_HAS_LARGE_FILES = false; + @Deprecated public static boolean APR_HAS_XTHREAD_FILES = false; + @Deprecated public static boolean APR_HAS_OS_UUID = false; /* Are we big endian? */ + @Deprecated public static boolean APR_IS_BIGENDIAN = false; /* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible * to poll on files/pipes. */ + @Deprecated public static boolean APR_FILES_AS_SOCKETS = false; /* This macro indicates whether or not EBCDIC is the native character set. */ + @Deprecated public static boolean APR_CHARSET_EBCDIC = false; /* Is the TCP_NODELAY socket option inherited from listening sockets? */ + @Deprecated public static boolean APR_TCP_NODELAY_INHERITED = false; /* Is the O_NONBLOCK flag inherited from listening sockets? */ + @Deprecated public static boolean APR_O_NONBLOCK_INHERITED = false; /* Poll operations are interruptable by apr_pollset_wakeup(). */ + @Deprecated public static boolean APR_POLLSET_WAKEABLE = false; /* Support for Unix Domain Sockets. */ + @Deprecated public static boolean APR_HAVE_UNIX = false; + @Deprecated public static int APR_SIZEOF_VOIDP; + @Deprecated public static int APR_PATH_MAX; + @Deprecated public static int APRMAXHOSTLEN; + @Deprecated public static int APR_MAX_IOVEC_SIZE; + @Deprecated public static int APR_MAX_SECS_TO_LINGER; + @Deprecated public static int APR_MMAP_THRESHOLD; + @Deprecated public static int APR_MMAP_LIMIT; /* return global TCN's APR pool */ + @Deprecated public static native long globalPool(); /** @@ -208,10 +230,11 @@ private Library(String libraryName) */ public static synchronized boolean initialize(String libraryName) throws Exception { if (_instance == null) { - if (libraryName == null) + if (libraryName == null) { _instance = new Library(); - else + } else { _instance = new Library(libraryName); + } TCN_MAJOR_VERSION = version(0x01); TCN_MINOR_VERSION = version(0x02); TCN_PATCH_VERSION = version(0x03); @@ -276,7 +299,10 @@ public static synchronized boolean initialize(String libraryName) throws Excepti * configurations), so that it can be loaded by multiple Webapps. * * @param filename - absolute path of the native library + * + * @deprecated Unused. Will be removed in Tomcat 10.1.x */ + @Deprecated public static void load(String filename){ System.load(filename); } @@ -294,7 +320,10 @@ public static void load(String filename){ * configurations), so that it can be loaded by multiple Webapps. * * @param libname - the name of the native library + * + * @deprecated Unused. Will be removed in Tomcat 10.1.x */ + @Deprecated public static void loadLibrary(String libname){ System.loadLibrary(libname); } diff --git a/java/org/apache/tomcat/jni/Local.java b/java/org/apache/tomcat/jni/Local.java index 8676c4f..fd0f3bb 100644 --- a/java/org/apache/tomcat/jni/Local.java +++ b/java/org/apache/tomcat/jni/Local.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** diff --git a/java/org/apache/tomcat/jni/Lock.java b/java/org/apache/tomcat/jni/Lock.java index eb2da79..9803197 100644 --- a/java/org/apache/tomcat/jni/Lock.java +++ b/java/org/apache/tomcat/jni/Lock.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Lock diff --git a/java/org/apache/tomcat/jni/Mmap.java b/java/org/apache/tomcat/jni/Mmap.java index c1cce36..16a88a1 100644 --- a/java/org/apache/tomcat/jni/Mmap.java +++ b/java/org/apache/tomcat/jni/Mmap.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Mmap diff --git a/java/org/apache/tomcat/jni/Multicast.java b/java/org/apache/tomcat/jni/Multicast.java index cebd111..fd090fd 100644 --- a/java/org/apache/tomcat/jni/Multicast.java +++ b/java/org/apache/tomcat/jni/Multicast.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Multicast diff --git a/java/org/apache/tomcat/jni/OS.java b/java/org/apache/tomcat/jni/OS.java index 6473137..48f7192 100644 --- a/java/org/apache/tomcat/jni/OS.java +++ b/java/org/apache/tomcat/jni/OS.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** OS @@ -52,6 +51,13 @@ public class OS { private static native boolean is(int type); public static final boolean IS_UNIX = is(UNIX); + /** + * @deprecated Hard-coded to false since there has not been a supported + * Netware platform for many years. + * This will be removed in Tomcat 10 onwards + */ + @Deprecated + public static final boolean IS_NETWARE = false; public static final boolean IS_WIN32 = is(WIN32); public static final boolean IS_WIN64 = is(WIN64); public static final boolean IS_LINUX = is(LINUX); diff --git a/java/org/apache/tomcat/jni/PasswordCallback.java b/java/org/apache/tomcat/jni/PasswordCallback.java index 13f5d9a..5c579dd 100644 --- a/java/org/apache/tomcat/jni/PasswordCallback.java +++ b/java/org/apache/tomcat/jni/PasswordCallback.java @@ -14,13 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** PasswordCallback Interface * * @author Mladen Turk + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ +@Deprecated public interface PasswordCallback { /** diff --git a/java/org/apache/tomcat/jni/Pool.java b/java/org/apache/tomcat/jni/Pool.java index f08fa80..3668a50 100644 --- a/java/org/apache/tomcat/jni/Pool.java +++ b/java/org/apache/tomcat/jni/Pool.java @@ -14,23 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; import java.nio.ByteBuffer; -/** Pool - * - * @author Mladen Turk +/** + * Provides access to APR memory pools which are used to manage memory + * allocations for natively created instances. */ public class Pool { /** * Create a new pool. - * @param parent The parent pool. If this is 0, the new pool is a root - * pool. If it is non-zero, the new pool will inherit all - * of its parent pool's attributes, except the apr_pool_t will - * be a sub-pool. + * + * @param parent The parent pool. If this is 0, the new pool is a root pool. + * If it is non-zero, the new pool will inherit all of its + * parent pool's attributes, except the apr_pool_t will be a + * sub-pool. + * * @return The pool we have just created. */ public static native long create(long parent); @@ -41,13 +42,16 @@ public class Pool { * @param pool The pool to clear * This does not actually free the memory, it just allows the pool * to re-use this memory for the next allocation. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void clear(long pool); /** * Destroy the pool. This takes similar action as apr_pool_clear() and then - * frees all the memory. - * This will actually free the memory + * frees all the memory. This will actually free the memory. + * * @param pool The pool to destroy */ public static native void destroy(long pool); @@ -56,7 +60,10 @@ public class Pool { * Get the parent pool of the specified pool. * @param pool The pool for retrieving the parent pool. * @return The parent of the given pool. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native long parentGet(long pool); /** @@ -65,7 +72,10 @@ public class Pool { * @param b The pool to search for * @return True if a is an ancestor of b, NULL is considered an ancestor * of all pools. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native boolean isAncestor(long a, long b); @@ -87,14 +97,20 @@ public class Pool { * @param o The object to call when the pool is cleared * or destroyed * @return The cleanup handler. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native long cleanupRegister(long pool, Object o); /** * Remove a previously registered cleanup function * @param pool The pool remove the cleanup from * @param data The cleanup handler to remove from cleanup + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void cleanupKill(long pool, long data); /** @@ -109,7 +125,10 @@ public class Pool { * APR_JUST_WAIT -- wait forever for the process to complete * APR_KILL_ONLY_ONCE -- send SIGTERM and then wait * + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void noteSubprocess(long a, long proc, int how); /** @@ -117,7 +136,10 @@ public class Pool { * @param p The pool to allocate from * @param size The amount of memory to allocate * @return The ByteBuffer with allocated memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer alloc(long p, int size); /** @@ -125,7 +147,10 @@ public class Pool { * @param p The pool to allocate from * @param size The amount of memory to allocate * @return The ByteBuffer with allocated memory + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native ByteBuffer calloc(long p, int size); /* @@ -143,7 +168,10 @@ public class Pool { * Object attached to the pool will be globally referenced * until the pool is cleared or dataSet is called with the null data. * @return APR Status code. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native int dataSet(long pool, String key, Object data); /** @@ -151,13 +179,19 @@ public class Pool { * @param key The key for the data to retrieve * @param pool The current pool. * @return the data + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native Object dataGet(long pool, String key); /** * Run all of the child_cleanups, so that any unnecessary files are * closed because we are about to exec a new program + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void cleanupForExec(); } diff --git a/java/org/apache/tomcat/jni/PoolCallback.java b/java/org/apache/tomcat/jni/PoolCallback.java index 501bb8a..c709979 100644 --- a/java/org/apache/tomcat/jni/PoolCallback.java +++ b/java/org/apache/tomcat/jni/PoolCallback.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** PoolCallback Interface diff --git a/java/org/apache/tomcat/jni/Proc.java b/java/org/apache/tomcat/jni/Proc.java index 64a4334..4ea678b 100644 --- a/java/org/apache/tomcat/jni/Proc.java +++ b/java/org/apache/tomcat/jni/Proc.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Proc diff --git a/java/org/apache/tomcat/jni/ProcErrorCallback.java b/java/org/apache/tomcat/jni/ProcErrorCallback.java index 0b5390f..a9421bc 100644 --- a/java/org/apache/tomcat/jni/ProcErrorCallback.java +++ b/java/org/apache/tomcat/jni/ProcErrorCallback.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** ProcErrorCallback Interface diff --git a/java/org/apache/tomcat/jni/Procattr.java b/java/org/apache/tomcat/jni/Procattr.java index 2bdb934..40800d1 100644 --- a/java/org/apache/tomcat/jni/Procattr.java +++ b/java/org/apache/tomcat/jni/Procattr.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Procattr diff --git a/java/org/apache/tomcat/jni/Registry.java b/java/org/apache/tomcat/jni/Registry.java index 9b57ecd..7a535f9 100644 --- a/java/org/apache/tomcat/jni/Registry.java +++ b/java/org/apache/tomcat/jni/Registry.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Windows Registry support diff --git a/java/org/apache/tomcat/jni/SSL.java b/java/org/apache/tomcat/jni/SSL.java index 06b6090..652921b 100644 --- a/java/org/apache/tomcat/jni/SSL.java +++ b/java/org/apache/tomcat/jni/SSL.java @@ -306,7 +306,10 @@ public final class SSL { * In case both files are unavailable builtin * random seed generator is used. * @return true if the operation was successful + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native boolean randLoad(String filename); /** @@ -315,7 +318,10 @@ public final class SSL { * by calling randLoad in a later session. * @param filename Filename to save the data * @return true if the operation was successful + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native boolean randSave(String filename); /** @@ -324,12 +330,16 @@ public final class SSL { * @param len The length of random sequence in bytes * @param base64 Output the data in Base64 encoded format * @return true if the operation was successful + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native boolean randMake(String filename, int len, boolean base64); /** * Sets global random filename. + * * @param filename Filename to use. * If set it will be used for SSL initialization * and all contexts where explicitly not set. @@ -342,33 +352,48 @@ public static native boolean randMake(String filename, int len, * @param callback BIOCallback to use * @return New BIO handle * @throws Exception An error occurred + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ - public static native long newBIO(long pool, BIOCallback callback) + @Deprecated + public static native long newBIO(long pool, BIOCallback callback) throws Exception; /** * Close BIO and dereference callback object * @param bio BIO to close and destroy. * @return APR Status code + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ - public static native int closeBIO(long bio); + @Deprecated + public static native int closeBIO(long bio); /** * Set global Password callback for obtaining passwords. * @param callback PasswordCallback implementation to use. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ - public static native void setPasswordCallback(PasswordCallback callback); + @Deprecated + public static native void setPasswordCallback(PasswordCallback callback); /** * Set global Password for decrypting certificates and keys. * @param password Password to use. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ - public static native void setPassword(String password); + @Deprecated + public static native void setPassword(String password); /** * Return last SSL error string * @return the error string + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native String getLastError(); /** @@ -382,7 +407,10 @@ public static native long newBIO(long pool, BIOCallback callback) * @param op Bitwise-OR of all SSL_OP_* to test. * * @return true if all SSL_OP_* are supported by OpenSSL library. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native boolean hasOp(int op); /** @@ -423,7 +451,10 @@ public static native long newBIO(long pool, BIOCallback callback) * @param ssl SSL pointer (SSL *) * @param rbio read BIO pointer (BIO *) * @param wbio write BIO pointer (BIO *) + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setBIO(long ssl, long rbio, long wbio); /** @@ -431,7 +462,10 @@ public static native long newBIO(long pool, BIOCallback callback) * @param ssl SSL pointer (SSL *) * @param ret TLS/SSL I/O return value * @return the error status + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native int getError(long ssl, int ret); /** @@ -495,7 +529,10 @@ public static native long newBIO(long pool, BIOCallback callback) * SSL_set_shutdown * @param ssl the SSL instance (SSL *) * @param mode Shutdown mode + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setShutdown(long ssl, int mode); /** @@ -597,7 +634,10 @@ public static native long newBIO(long pool, BIOCallback callback) * SSL_get0_next_proto_negotiated * @param ssl the SSL instance (SSL *) * @return the NPN protocol negotiated + * + * @deprecated Unused. Will be removed in Tomcat 10.1.x */ + @Deprecated public static native String getNextProtoNegotiated(long ssl); /* diff --git a/java/org/apache/tomcat/jni/SSLConf.java b/java/org/apache/tomcat/jni/SSLConf.java index ede4565..db855fc 100644 --- a/java/org/apache/tomcat/jni/SSLConf.java +++ b/java/org/apache/tomcat/jni/SSLConf.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** SSL Conf diff --git a/java/org/apache/tomcat/jni/SSLContext.java b/java/org/apache/tomcat/jni/SSLContext.java index 1810571..1363aea 100644 --- a/java/org/apache/tomcat/jni/SSLContext.java +++ b/java/org/apache/tomcat/jni/SSLContext.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; import java.util.Locale; @@ -70,7 +69,10 @@ public final class SSLContext { * Set Session context id. Usually host:port combination. * @param ctx Context to use. * @param id String that uniquely identifies this context. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setContextId(long ctx, String id); /** @@ -91,7 +93,10 @@ public final class SSLContext { * @param ctx Server or Client context to use. * @param bio BIO handle to use, created with SSL.newBIO * @param dir BIO direction (1 for input 0 for output). + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setBIO(long ctx, long bio, int dir); /** @@ -140,7 +145,10 @@ public final class SSLContext { * The default is normal shutdown behaviour as described by the TLS standard. * @param ctx Server or Client context to use. * @param mode True to set the quiet shutdown. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setQuietShutdown(long ctx, boolean mode); /** @@ -344,7 +352,10 @@ public static native boolean setCACertificate(long ctx, String file, * Set file for randomness * @param ctx Server or Client context to use. * @param file random file. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setRandom(long ctx, String file); /** @@ -358,7 +369,10 @@ public static native boolean setCACertificate(long ctx, String file, * * @param ctx Server or Client context to use. * @param type Shutdown type to use. + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setShutdownType(long ctx, int type); /** @@ -396,6 +410,7 @@ public static native boolean setCACertificate(long ctx, String file, */ public static native void setVerify(long ctx, int level, int depth); + @Deprecated public static native int setALPN(long ctx, byte[] proto, int len); /** @@ -445,7 +460,10 @@ public static long sniCallBack(long currentCtx, String sniHostName) { * via connections initiated using * defaultSSLContext to the correct OpenSSL * SSLContext + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static void registerDefault(Long defaultSSLContext, SNICallBack sniCallBack) { sniCallBacks.put(defaultSSLContext, sniCallBack); @@ -457,7 +475,10 @@ public static void registerDefault(Long defaultSSLContext, * * @param defaultSSLContext The Java representation of a pointer to the * OpenSSL SSLContext that will no longer be used + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static void unregisterDefault(Long defaultSSLContext) { sniCallBacks.remove(defaultSSLContext); } @@ -511,7 +532,10 @@ public static void setNextProtos(long ctx, String nextProtos) { * @param nextProtos protocols in priority order * @param selectorFailureBehavior see {@link SSL#SSL_SELECTOR_FAILURE_NO_ADVERTISE} * and {@link SSL#SSL_SELECTOR_FAILURE_CHOOSE_MY_LAST_PROTOCOL} + * + * @deprecated Unused. Will be removed in Tomcat 10.1.x */ + @Deprecated public static native void setNpnProtos(long ctx, String[] nextProtos, int selectorFailureBehavior); /** @@ -529,7 +553,10 @@ public static void setNextProtos(long ctx, String nextProtos) { * @param cert DH param file (can be generated from e.g. {@code openssl dhparam -rand - 2048 > dhparam.pem} - * see the OpenSSL documentation). * @throws Exception An error occurred + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setTmpDH(long ctx, String cert) throws Exception; @@ -539,7 +566,10 @@ public static native void setTmpDH(long ctx, String cert) * @param curveName the name of the elliptic curve to use * (available names can be obtained from {@code openssl ecparam -list_curves}). * @throws Exception An error occurred + * + * @deprecated Unused. Will be removed in Tomcat 10.1 */ + @Deprecated public static native void setTmpECDHByCurveName(long ctx, String curveName) throws Exception; diff --git a/java/org/apache/tomcat/jni/SSLSocket.java b/java/org/apache/tomcat/jni/SSLSocket.java index 0a63916..2e1b316 100644 --- a/java/org/apache/tomcat/jni/SSLSocket.java +++ b/java/org/apache/tomcat/jni/SSLSocket.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** SSL Socket diff --git a/java/org/apache/tomcat/jni/Shm.java b/java/org/apache/tomcat/jni/Shm.java index 6b01675..f62d4aa 100644 --- a/java/org/apache/tomcat/jni/Shm.java +++ b/java/org/apache/tomcat/jni/Shm.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; import java.nio.ByteBuffer; diff --git a/java/org/apache/tomcat/jni/Sockaddr.java b/java/org/apache/tomcat/jni/Sockaddr.java index cbe31d0..9d138ec 100644 --- a/java/org/apache/tomcat/jni/Sockaddr.java +++ b/java/org/apache/tomcat/jni/Sockaddr.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Sockaddr diff --git a/java/org/apache/tomcat/jni/Socket.java b/java/org/apache/tomcat/jni/Socket.java index 6d64ec0..cbc2a01 100644 --- a/java/org/apache/tomcat/jni/Socket.java +++ b/java/org/apache/tomcat/jni/Socket.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /* Import needed classes */ diff --git a/java/org/apache/tomcat/jni/Status.java b/java/org/apache/tomcat/jni/Status.java index e62f9c9..004340c 100644 --- a/java/org/apache/tomcat/jni/Status.java +++ b/java/org/apache/tomcat/jni/Status.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Status diff --git a/java/org/apache/tomcat/jni/Stdlib.java b/java/org/apache/tomcat/jni/Stdlib.java index bb8fdf9..18e8fb2 100644 --- a/java/org/apache/tomcat/jni/Stdlib.java +++ b/java/org/apache/tomcat/jni/Stdlib.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Stdlib diff --git a/java/org/apache/tomcat/jni/Thread.java b/java/org/apache/tomcat/jni/Thread.java index 447c93a..277cfb6 100644 --- a/java/org/apache/tomcat/jni/Thread.java +++ b/java/org/apache/tomcat/jni/Thread.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Thread diff --git a/java/org/apache/tomcat/jni/Time.java b/java/org/apache/tomcat/jni/Time.java index ad19dd1..24b0540 100644 --- a/java/org/apache/tomcat/jni/Time.java +++ b/java/org/apache/tomcat/jni/Time.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** Time diff --git a/java/org/apache/tomcat/jni/User.java b/java/org/apache/tomcat/jni/User.java index 71894fe..b9a0547 100644 --- a/java/org/apache/tomcat/jni/User.java +++ b/java/org/apache/tomcat/jni/User.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.tomcat.jni; /** User diff --git a/jnirelease.sh b/jnirelease.sh index 6763b28..cc12260 100755 --- a/jnirelease.sh +++ b/jnirelease.sh @@ -85,7 +85,7 @@ if [ "x$JKJNIEXT" = "x" ]; then echo "" echo "Unknown Git tag/branch" echo "Use:" - echo " --ver=|1.1.x|main|." + echo " --ver=|1.1.x|1.2.x|main|." echo "" exit 1 fi @@ -136,6 +136,9 @@ fi if [ "x$JKJNIEXT" = "xmain" ]; then JKJNIHASH=`git ls-remote $GITBASE refs/heads/main | awk '{print $1}'` JKJNIVER="$JKJNIEXT-$JKJNIHASH" +elif [ "x$JKJNIEXT" = "x1.2.x" ]; then + JKJNIHASH=`git ls-remote $GITBASE refs/heads/1.2.x | awk '{print $1}'` + JKJNIVER="$JKJNIEXT-$JKJNIHASH" elif [ "x$JKJNIEXT" = "x1.1.x" ]; then JKJNIHASH=`git ls-remote $GITBASE refs/heads/1.1.x | awk '{print $1}'` JKJNIVER="$JKJNIEXT-$JKJNIHASH" @@ -162,18 +165,18 @@ else git checkout ${JKJNIHASH} fi -if [ ! -d .git/refs/remotes/10.0.x ]; then - git remote add -f 10.0.x ${TCJAVA_GITBASE} +if [ ! -d .git/refs/remotes/tcjava ]; then + git remote add -f tcjava ${TCJAVA_GITBASE} fi -git remote update 10.0.x -diffcount=`git diff HEAD remotes/10.0.x/main java/org/apache/tomcat/jni | wc -l` +git remote update tcjava +diffcount=`git diff HEAD remotes/tcjava/9.0.x java/org/apache/tomcat/jni | wc -l` if [ $diffcount -ne 0 ]; then echo "WARNING: git subtree is not up to date with" echo " $TCJAVA_GITBASE" echo " Either correct now by running" echo " 'git rm -rf java/org/apache/tomcat/jni'" - echo " 'git read-tree --prefix=java/org/apache/tomcat/jni/ -u 10.0.x/main:java/org/apache/tomcat/jni'" + echo " 'git read-tree --prefix=java/org/apache/tomcat/jni/ -u tcjava/9.0.x:java/org/apache/tomcat/jni'" echo " 'git commit'" echo " or run this script with -f (force)" if [ "X$JKJNIFORCE" = "X1" ] diff --git a/native/BUILDING b/native/BUILDING index d175332..7059e8d 100644 --- a/native/BUILDING +++ b/native/BUILDING @@ -21,7 +21,7 @@ Linux / Unix / OSX (dynamic linking) 1. Prerequisites Install OpenSSL version 1.0.2 or higher - Install APR version 1.4.0 or higher. + Install APR version 1.4.3 or higher. Download and expand the source package or use an git checkout > cd native @@ -50,7 +50,7 @@ Linux / Unix / OSX (static linking) 1. Build static version of OpenSSL 1.0.2 or later - > ./config --prefix=~/natives/openssl no-shared -fPIC + > ./Configure --prefix=~/natives/openssl no-shared -fPIC > make > make install_sw diff --git a/native/NMAKEmakefile b/native/NMAKEmakefile index 24cdbb4..1c91b5c 100644 --- a/native/NMAKEmakefile +++ b/native/NMAKEmakefile @@ -15,7 +15,7 @@ # # ==================================================================== # -# NMAKEmakefile Master Tomcat Native makefile. +# NMAKEmakefile Tomcat Native makefile. # Usage: # APR_DECLARE_STATIC=1 Use static version of the APR # ENABLE_OCSP=1 Enable OpenSSL OCSP code diff --git a/native/NMAKEmakefile.inc b/native/NMAKEmakefile.inc index 751a1d2..257d30b 100644 --- a/native/NMAKEmakefile.inc +++ b/native/NMAKEmakefile.inc @@ -18,7 +18,7 @@ # # ==================================================================== # -# Makefile.inc Master makefile definitions. +# Makefile.inc Tomcat Native makefile definitions. # This file defines CPU architecture and basic compiler # and linker parameters. # Common params: diff --git a/native/configure b/native/configure index ec6df72..ba88091 100755 --- a/native/configure +++ b/native/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69. +# Generated by GNU Autoconf 2.71. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,14 +15,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -31,46 +34,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -79,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -94,8 +90,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -107,30 +107,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -152,20 +132,22 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -185,41 +167,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" - if (eval "$as_required") 2>/dev/null; then : + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -227,14 +220,21 @@ fi esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -252,18 +252,19 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -290,6 +291,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -307,6 +309,14 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -321,7 +331,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -330,7 +340,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -369,12 +379,13 @@ as_fn_executable_p () # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -386,18 +397,27 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -409,9 +429,9 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -438,7 +458,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -482,7 +502,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -496,6 +516,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -509,6 +533,13 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -574,12 +605,12 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= -PACKAGE_URL= +PACKAGE_NAME='' +PACKAGE_TARNAME='' +PACKAGE_VERSION='' +PACKAGE_STRING='' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' ac_unique_file="configure.in" ac_subst_vars='LTLIBOBJS @@ -759,8 +790,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -801,9 +830,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -827,9 +856,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1040,9 +1069,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1056,9 +1085,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1102,9 +1131,9 @@ Try \`$0 --help' for more information" *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1120,7 +1149,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1184,7 +1213,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1361,9 +1390,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1391,7 +1420,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1399,7 +1429,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1409,9 +1439,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1428,14 +1458,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1443,14 +1473,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1462,8 +1493,8 @@ fi # ac_fn_c_try_run LINENO # ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack @@ -1473,25 +1504,26 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status @@ -1508,14 +1540,14 @@ fi ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1523,17 +1555,18 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1547,14 +1580,34 @@ fi as_fn_set_status $ac_retval } # ac_fn_c_try_link +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -1587,8 +1640,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -1623,7 +1680,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -1658,11 +1715,13 @@ done # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -1673,8 +1732,8 @@ trap 'exit_status=$? case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -1698,7 +1757,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -1706,14 +1765,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -1721,15 +1780,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -1737,8 +1796,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -1752,63 +1811,48 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -1818,19 +1862,425 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + + +# Auxiliary files required by this configure script. +ac_aux_files="install-sh config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}/build" + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -1841,12 +2291,12 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) @@ -1855,24 +2305,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1882,11 +2332,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi done if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -1900,34 +2351,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_aux_dir= -for ac_dir in build "$srcdir"/build; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in build \"$srcdir\"/build" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - @@ -2117,26 +2540,30 @@ else fi -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else + + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_build_alias=$build_alias test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -2155,21 +2582,22 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -2188,21 +2616,22 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 -$as_echo_n "checking target system type... " >&6; } -if ${ac_cv_target+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +printf %s "checking target system type... " >&6; } +if test ${ac_cv_target+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else - ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 + ac_cv_target=`$SHELL "${ac_aux_dir}config.sub" $target_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $target_alias failed" "$LINENO" 5 fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 -$as_echo "$ac_cv_target" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +printf "%s\n" "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; @@ -2228,7 +2657,8 @@ test -n "$target_alias" && NONENONEs,x,x, && program_prefix=${target_alias}- -# Find a good install program. We prefer a C program (faster), + + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install @@ -2242,20 +2672,25 @@ test -n "$target_alias" && # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -2265,13 +2700,13 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else @@ -2279,12 +2714,12 @@ case $as_dir/ in #(( echo one > conftest.one echo two > conftest.two mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi @@ -2300,7 +2735,7 @@ IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi - if test "${ac_cv_path_install+set}" = set; then + if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -2310,8 +2745,8 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2328,11 +2763,12 @@ top_builddir="$abs_builddir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mkdir -p" >&5 -$as_echo_n "checking for working mkdir -p... " >&6; } -if ${ac_cv_mkdir_p+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mkdir -p" >&5 +printf %s "checking for working mkdir -p... " >&6; } +if test ${ac_cv_mkdir_p+y} +then : + printf %s "(cached) " >&6 +else $as_nop test -d conftestdir && rm -rf conftestdir mkdir -p conftestdir/somedir >/dev/null 2>&1 @@ -2344,8 +2780,8 @@ else rm -rf conftestdir fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mkdir_p" >&5 -$as_echo "$ac_cv_mkdir_p" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mkdir_p" >&5 +printf "%s\n" "$ac_cv_mkdir_p" >&6; } if test "$ac_cv_mkdir_p" = "yes"; then mkdir_p="mkdir -p" else @@ -2367,7 +2803,8 @@ echo "Tomcat Native Version: ${TCNATIVE_DOTTED_VERSION}" # Check whether --enable-layout was given. -if test "${enable_layout+set}" = set; then : +if test ${enable_layout+y} +then : enableval=$enable_layout; LAYOUT=$enableval @@ -2437,10 +2874,10 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chosen layout" >&5 -$as_echo_n "checking for chosen layout... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $layout_name" >&5 -$as_echo "$layout_name" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for chosen layout" >&5 +printf %s "checking for chosen layout... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $layout_name" >&5 +printf "%s\n" "$layout_name" >&6; } ac_prev= @@ -2594,11 +3031,12 @@ TCNATIVE_PRIV_INCLUDES="-I$srcdir/include" esac done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for APR" >&5 -$as_echo_n "checking for APR... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for APR" >&5 +printf %s "checking for APR... " >&6; } # Check whether --with-apr was given. -if test "${with_apr+set}" = set; then : +if test ${with_apr+y} +then : withval=$with_apr; if test "$withval" = "no" || test "$withval" = "yes"; then as_fn_error $? "--with-apr requires a directory or file to be provided" "$LINENO" 5 @@ -2626,7 +3064,7 @@ if test "${with_apr+set}" = set; then : as_fn_error $? "the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file." "$LINENO" 5 fi -else +else $as_nop if test -n "1" && test "1" = "1"; then for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config @@ -2673,8 +3111,8 @@ else fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $apr_found" >&5 -$as_echo "$apr_found" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $apr_found" >&5 +printf "%s\n" "$apr_found" >&6; } if test "$apr_found" = "no" then @@ -2696,8 +3134,8 @@ $as_echo "$apr_found" >&6; } then as_fn_error $? "Found APR $sapr_version. You need version 1.4.3 or newer installed." "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: APR $sapr_version detected." >&5 -$as_echo "$as_me: APR $sapr_version detected." >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: APR $sapr_version detected." >&5 +printf "%s\n" "$as_me: APR $sapr_version detected." >&6;} APR_BUILD_DIR="`$apr_config --installbuilddir`" @@ -2734,18 +3172,19 @@ NEED_JNI_MD=yes # Check whether --with-java-home was given. -if test "${with_java_home+set}" = set; then : +if test ${with_java_home+y} +then : withval=$with_java_home; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking JAVA_HOME" >&5 -$as_echo_n "checking JAVA_HOME... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking JAVA_HOME" >&5 +printf %s "checking JAVA_HOME... " >&6; } if test -d "$withval" then JAVA_HOME="$withval" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVA_HOME" >&5 -$as_echo "$JAVA_HOME" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $JAVA_HOME" >&5 +printf "%s\n" "$JAVA_HOME" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } as_fn_error $? "$withval is not a directory" "$LINENO" 5 fi @@ -2754,8 +3193,8 @@ fi if test "x$JAVA_HOME" = x then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JDK location" >&5 -$as_echo_n "checking for JDK location... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for JDK location" >&5 +printf %s "checking for JDK location... " >&6; } # Oh well, nobody set JAVA_HOME, have to guess # Check if we have java in the PATH. java_prog="`which java 2>/dev/null || true`" @@ -2766,8 +3205,8 @@ $as_echo_n "checking for JDK location... " >&6; } if test -f "$java_top/include/jni.h" then JAVA_HOME="$java_top" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${java_top}" >&5 -$as_echo "${java_top}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${java_top}" >&5 +printf "%s\n" "${java_top}" >&6; } fi fi fi @@ -2810,7 +3249,8 @@ if test "$NEED_JNI_MD" = "yes"; then JAVA_OS="" # Check whether --with-os-type was given. -if test "${with_os_type+set}" = set; then : +if test ${with_os_type+y} +then : withval=$with_os_type; tempval=$withval if test ! -d "$JAVA_HOME/$tempval" @@ -2819,10 +3259,10 @@ if test "${with_os_type+set}" = set; then : fi JAVA_OS=$tempval -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JDK os include directory" >&5 -$as_echo_n "checking for JDK os include directory... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for JDK os include directory" >&5 +printf %s "checking for JDK os include directory... " >&6; } JAVA_OS=NONE if test -f $JAVA_HOME/$JAVA_INC/jni_md.h then @@ -2838,8 +3278,8 @@ $as_echo_n "checking for JDK os include directory... " >&6; } fi done if test "x$JAVA_OS" = "xNONE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Cannot find jni_md.h in ${JAVA_HOME}/${OS}" >&5 -$as_echo "Cannot find jni_md.h in ${JAVA_HOME}/${OS}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Cannot find jni_md.h in ${JAVA_HOME}/${OS}" >&5 +printf "%s\n" "Cannot find jni_md.h in ${JAVA_HOME}/${OS}" >&6; } as_fn_error $? "You should retry --with-os-type=SUBDIR" "$LINENO" 5 fi fi @@ -2848,8 +3288,8 @@ fi if test -z "${JAVA_OS}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: jni_md.h found in $JAVA_HOME/$JAVA_INC" >&5 -$as_echo "jni_md.h found in $JAVA_HOME/$JAVA_INC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: jni_md.h found in $JAVA_HOME/$JAVA_INC" >&5 +printf "%s\n" "jni_md.h found in $JAVA_HOME/$JAVA_INC" >&6; } else if test "x$TCNATIVE_PRIV_INCLUDES" = "x"; then @@ -2884,13 +3324,14 @@ fi use_openssl=true; # Check whether --enable-openssl was given. -if test "${enable_openssl+set}" = set; then : +if test ${enable_openssl+y} +then : enableval=$enable_openssl; case "${enableval}" in no ) use_openssl=false; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling SSL support..." >&5 -$as_echo "Disabling SSL support..." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Disabling SSL support..." >&5 +printf "%s\n" "Disabling SSL support..." >&6; } ;; esac @@ -2898,7 +3339,8 @@ fi # Check whether --enable-insecure-export-ciphers was given. -if test "${enable_insecure_export_ciphers+set}" = set; then : +if test ${enable_insecure_export_ciphers+y} +then : enableval=$enable_insecure_export_ciphers; case "${enableval}" in yes ) @@ -2923,8 +3365,8 @@ if test "${enable_insecure_export_ciphers+set}" = set; then : done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling insecure export and null cipher support" >&5 -$as_echo "$as_me: WARNING: Enabling insecure export and null cipher support" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Enabling insecure export and null cipher support" >&5 +printf "%s\n" "$as_me: WARNING: Enabling insecure export and null cipher support" >&2;} ;; esac @@ -2932,7 +3374,16 @@ fi if $use_openssl ; then - ac_ext=c + + + + + + + + + +ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -2940,11 +3391,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2952,11 +3404,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2967,11 +3423,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2980,11 +3436,12 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2992,11 +3449,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3007,11 +3468,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3019,8 +3480,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3033,11 +3494,12 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3045,11 +3507,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3060,11 +3526,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3073,11 +3539,12 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3086,15 +3553,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3110,18 +3581,18 @@ if test $ac_prog_rejected = yes; then # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3132,11 +3603,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3144,11 +3616,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3159,11 +3635,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3176,11 +3652,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3188,11 +3665,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3203,11 +3684,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3219,34 +3700,138 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi +else + CC="$ac_cv_prog_CC" fi fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do +for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3256,7 +3841,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3264,7 +3849,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3276,9 +3861,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -3299,11 +3884,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -3320,7 +3906,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3336,44 +3922,46 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop ac_file='' fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -3387,15 +3975,15 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -3404,7 +3992,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -3416,8 +4004,8 @@ _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -3425,10 +4013,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -3436,39 +4024,40 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3482,11 +4071,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -3495,31 +4085,32 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -3529,29 +4120,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -3560,57 +4155,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3625,94 +4223,144 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -3723,13 +4371,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library" >&5 -$as_echo_n "checking for OpenSSL library... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library" >&5 +printf %s "checking for OpenSSL library... " >&6; } # Check whether --with-ssl was given. -if test "${with_ssl+set}" = set; then : +if test ${with_ssl+y} +then : withval=$with_ssl; use_openssl="$withval" -else +else $as_nop use_openssl="auto" fi @@ -3748,16 +4397,16 @@ then fi case "$use_openssl" in no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } TCN_OPENSSL_INC="" USE_OPENSSL="" ;; auto) TCN_OPENSSL_INC="" USE_OPENSSL="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +printf "%s\n" "not found" >&6; } ;; *) if test "$use_openssl" = "yes" @@ -3773,8 +4422,8 @@ $as_echo "not found" >&6; } done if test "$use_openssl" = "yes" then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +printf "%s\n" "not found" >&6; } as_fn_error $? "OpenSSL was not found in any of $openssldirs; use --with-ssl=/path" "$LINENO" 5 fi fi @@ -3804,8 +4453,8 @@ $as_echo "not found" >&6; } ;; esac fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using openssl from $use_openssl/$ssllibdir and $use_openssl/include" >&5 -$as_echo "using openssl from $use_openssl/$ssllibdir and $use_openssl/include" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using openssl from $use_openssl/$ssllibdir and $use_openssl/include" >&5 +printf "%s\n" "using openssl from $use_openssl/$ssllibdir and $use_openssl/include" >&6; } saved_cflags="$CFLAGS" saved_libs="$LIBS" @@ -3813,18 +4462,20 @@ $as_echo "using openssl from $use_openssl/$ssllibdir and $use_openssl/include" > LIBS="$LIBS $TCN_OPENSSL_LIBS" # Check whether --enable-openssl-version-check was given. -if test "${enable_openssl_version_check+set}" = set; then : +if test ${enable_openssl_version_check+y} +then : enableval=$enable_openssl_version_check; fi case "$enable_openssl_version_check" in yes|'') - { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL library version >= 1.0.2" >&5 -$as_echo_n "checking OpenSSL library version >= 1.0.2... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming target platform has compatible version" >&5 -$as_echo "assuming target platform has compatible version" >&6; } -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking OpenSSL library version >= 1.0.2" >&5 +printf %s "checking OpenSSL library version >= 1.0.2... " >&6; } + if test "$cross_compiling" = yes +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: assuming target platform has compatible version" >&5 +printf "%s\n" "assuming target platform has compatible version" >&6; } +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3840,10 +4491,11 @@ int main() { } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -else +if ac_fn_c_try_run "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } +else $as_nop as_fn_error $? "Your version of OpenSSL is not compatible with this version of tcnative" "$LINENO" 5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -3852,22 +4504,22 @@ fi ;; no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Skipped OpenSSL version check" >&5 -$as_echo "Skipped OpenSSL version check" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Skipped OpenSSL version check" >&5 +printf "%s\n" "Skipped OpenSSL version check" >&6; } ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL DSA support" >&5 -$as_echo_n "checking for OpenSSL DSA support... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL DSA support" >&5 +printf %s "checking for OpenSSL DSA support... " >&6; } if test -f $use_openssl/include/openssl/dsa.h then - $as_echo "#define HAVE_OPENSSL_DSA 1" >>confdefs.h + printf "%s\n" "#define HAVE_OPENSSL_DSA 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi CFLAGS="$saved_cflags" LIBS="$saved_libs" @@ -3964,7 +4616,8 @@ esac CFLAGS="${CFLAGS}" # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : +if test ${enable_maintainer_mode+y} +then : enableval=$enable_maintainer_mode; case "${enableval}" in yes ) @@ -3973,8 +4626,8 @@ if test "${enable_maintainer_mode+set}" = set; then : else CFLAGS="${CFLAGS} -DDEBUG" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...Enabling Maintainer mode..." >&5 -$as_echo "...Enabling Maintainer mode..." >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ...Enabling Maintainer mode..." >&5 +printf "%s\n" "...Enabling Maintainer mode..." >&6; } ;; esac @@ -4103,11 +4756,12 @@ esac CFLAGS="$CFLAGS $APR_INCLUDES" LIBS="$LIBS $APR_LIBS" chk_result=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_pollset_wakeup in -lapr-1" >&5 -$as_echo_n "checking for apr_pollset_wakeup in -lapr-1... " >&6; } -if ${ac_cv_lib_apr_1_apr_pollset_wakeup+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for apr_pollset_wakeup in -lapr-1" >&5 +printf %s "checking for apr_pollset_wakeup in -lapr-1... " >&6; } +if test ${ac_cv_lib_apr_1_apr_pollset_wakeup+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lapr-1 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4116,30 +4770,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char apr_pollset_wakeup (); int -main () +main (void) { return apr_pollset_wakeup (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_apr_1_apr_pollset_wakeup=yes -else +else $as_nop ac_cv_lib_apr_1_apr_pollset_wakeup=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_apr_1_apr_pollset_wakeup" >&5 -$as_echo "$ac_cv_lib_apr_1_apr_pollset_wakeup" >&6; } -if test "x$ac_cv_lib_apr_1_apr_pollset_wakeup" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_apr_1_apr_pollset_wakeup" >&5 +printf "%s\n" "$ac_cv_lib_apr_1_apr_pollset_wakeup" >&6; } +if test "x$ac_cv_lib_apr_1_apr_pollset_wakeup" = xyes +then : chk_result=1 fi @@ -4241,8 +4894,8 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -4272,15 +4925,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -4294,8 +4947,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -4348,7 +5001,7 @@ U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -4364,8 +5017,8 @@ LTLIBOBJS=$ac_ltlibobjs ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -4388,14 +5041,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -4405,46 +5060,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -4453,13 +5108,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -4468,8 +5116,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -4481,30 +5133,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -4517,13 +5149,14 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -4550,18 +5183,20 @@ as_fn_unset () { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -4573,12 +5208,13 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -4609,7 +5245,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -4631,6 +5267,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -4644,6 +5284,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -4685,7 +5331,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -4694,7 +5340,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -4757,7 +5403,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -4810,14 +5456,16 @@ $config_commands Report bugs to the package provider." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -4855,21 +5503,21 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -4897,7 +5545,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -4911,7 +5559,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -4937,8 +5585,8 @@ done # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree @@ -5166,7 +5814,7 @@ do esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -5174,17 +5822,17 @@ do # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -5201,7 +5849,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5225,9 +5873,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -5284,8 +5932,8 @@ ac_sed_dataroot=' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -5328,9 +5976,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -5342,8 +5990,8 @@ which seems to be undefined. Please make sure it is defined" >&2;} ;; - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -5386,7 +6034,8 @@ if test "$no_create" != yes; then $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff --git a/native/include/ssl_private.h b/native/include/ssl_private.h index f6b2840..545022b 100644 --- a/native/include/ssl_private.h +++ b/native/include/ssl_private.h @@ -46,6 +46,9 @@ #include #include #include +#if (OPENSSL_VERSION_NUMBER > 0x2FFFFFFFL) +#include +#endif /* Avoid tripping over an engine build installed globally and detected * when the user points at an explicit non-engine flavor of OpenSSL */ @@ -206,7 +209,7 @@ extern ENGINE *tcn_ssl_engine; /* OCSP stapling */ #if !defined(OPENSSL_NO_OCSP) && defined(SSL_CTX_set_tlsext_status_cb) -#define HAVE_OCSP_STAPLING +#define HAVE_OCSP #define OCSP_STATUS_OK 0 #define OCSP_STATUS_REVOKED 1 #define OCSP_STATUS_UNKNOWN 2 diff --git a/native/include/tcn.h b/native/include/tcn.h index 168549f..4eb2c97 100644 --- a/native/include/tcn.h +++ b/native/include/tcn.h @@ -227,10 +227,13 @@ unsigned long tcn_get_thread_id(void); jclass _##C = (*(E))->FindClass((E), N); \ if (_##C == NULL) { \ (*(E))->ExceptionClear((E)); \ - return R; \ + if (R != JNI_OK) { \ + return R; \ + } \ + } else { \ + C = (*(E))->NewGlobalRef((E), _##C); \ + (*(E))->DeleteLocalRef((E), _##C); \ } \ - C = (*(E))->NewGlobalRef((E), _##C); \ - (*(E))->DeleteLocalRef((E), _##C); \ TCN_END_MACRO #define TCN_UNLOAD_CLASS(E, C) \ diff --git a/native/include/tcn_version.h b/native/include/tcn_version.h index 1fe3009..b9ba883 100644 --- a/native/include/tcn_version.h +++ b/native/include/tcn_version.h @@ -63,7 +63,7 @@ extern "C" { #define TCN_MINOR_VERSION 2 /** patch level */ -#define TCN_PATCH_VERSION 31 +#define TCN_PATCH_VERSION 35 /** * This symbol is defined for internal, "development" copies of TCN. This diff --git a/native/os/win32/libtcnative.rc b/native/os/win32/libtcnative.rc index f05d981..6e7c858 100644 --- a/native/os/win32/libtcnative.rc +++ b/native/os/win32/libtcnative.rc @@ -20,7 +20,7 @@ LANGUAGE 0x9,0x1 "See the License for the specific language governing " \ "permissions and limitations under the License." -#define TCN_VERSION "1.2.31" +#define TCN_VERSION "1.2.35" 1000 ICON "apache.ico" 1001 DIALOGEX 0, 0, 252, 51 @@ -36,8 +36,8 @@ BEGIN END 1 VERSIONINFO - FILEVERSION 1,2,31,0 - PRODUCTVERSION 1,2,31,0 + FILEVERSION 1,2,35,0 + PRODUCTVERSION 1,2,35,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/native/os/win32/system.c b/native/os/win32/system.c index 4731d17..c09cc49 100644 --- a/native/os/win32/system.c +++ b/native/os/win32/system.c @@ -79,17 +79,6 @@ DllMain( if (fnGetSystemTimes == NULL) { FreeLibrary(h_kernel); h_kernel = NULL; -#if (_WIN32_WINNT < 0x0501) - if ((h_ntdll = LoadLibrary("ntdll.dll")) != NULL) - fnNtQuerySystemInformation = - (pfnNtQuerySystemInformation)GetProcAddress(h_ntdll, - "NtQuerySystemInformation"); - - if (fnNtQuerySystemInformation == NULL) { - FreeLibrary(h_ntdll); - h_ntdll = NULL; - } -#endif } GetModuleFileName(instance, dll_file_name, sizeof(dll_file_name)); break; diff --git a/native/src/jnilib.c b/native/src/jnilib.c index 32f5151..300fe8c 100644 --- a/native/src/jnilib.c +++ b/native/src/jnilib.c @@ -82,18 +82,24 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) /* Initialize global java.lang.String class */ TCN_LOAD_CLASS(env, jString_class, "java/lang/String", JNI_ERR); - TCN_LOAD_CLASS(env, jFinfo_class, TCN_FINFO_CLASS, JNI_ERR); - TCN_LOAD_CLASS(env, jAinfo_class, TCN_AINFO_CLASS, JNI_ERR); - TCN_GET_METHOD(env, jString_class, jString_init, "", "([B)V", JNI_ERR); TCN_GET_METHOD(env, jString_class, jString_getBytes, "getBytes", "()[B", JNI_ERR); - if(tcn_load_finfo_class(env, jFinfo_class) != APR_SUCCESS) - return JNI_ERR; - if(tcn_load_ainfo_class(env, jAinfo_class) != APR_SUCCESS) - return JNI_ERR; + TCN_LOAD_CLASS(env, jFinfo_class, TCN_FINFO_CLASS, JNI_OK); + if (jFinfo_class) { + if (tcn_load_finfo_class(env, jFinfo_class) != APR_SUCCESS) { + return JNI_ERR; + } + } + + TCN_LOAD_CLASS(env, jAinfo_class, TCN_AINFO_CLASS, JNI_OK); + if (jAinfo_class) { + if (tcn_load_ainfo_class(env, jAinfo_class) != APR_SUCCESS) { + return JNI_ERR; + } + } #ifdef WIN32 { char *ppid = getenv(TCN_PARENT_IDE); diff --git a/native/src/pool.c b/native/src/pool.c index 83c4494..901ed02 100644 --- a/native/src/pool.c +++ b/native/src/pool.c @@ -42,7 +42,7 @@ TCN_IMPLEMENT_CALL(jlong, Pool, create)(TCN_STDARGS, jlong parent) apr_pool_t *n; UNREFERENCED(o); - /* Make sure our global pool is accessor for all pools */ + /* Make sure our global pool is ancestor for all pools */ if (p == NULL) p = tcn_global_pool; TCN_THROW_IF_ERR(apr_pool_create(&n, p), n); diff --git a/native/src/ssl.c b/native/src/ssl.c index d59246e..92414e6 100644 --- a/native/src/ssl.c +++ b/native/src/ssl.c @@ -926,10 +926,31 @@ TCN_IMPLEMENT_CALL(void, SSL, randSet)(TCN_STDARGS, jstring file) TCN_IMPLEMENT_CALL(jint, SSL, fipsModeGet)(TCN_STDARGS) { - UNREFERENCED(o); #ifdef OPENSSL_FIPS + UNREFERENCED(o); return FIPS_mode(); +#elif (OPENSSL_VERSION_NUMBER > 0x2FFFFFFFL) + EVP_MD *md; + const OSSL_PROVIDER *provider; + const char *name; + UNREFERENCED(o); + + // Maps the OpenSSL 3. x onwards behaviour to theOpenSSL 1.x API + + // Checks that FIPS is the default provider + md = EVP_MD_fetch(NULL, "SHA-512", NULL); + provider = EVP_MD_get0_provider(md); + name = OSSL_PROVIDER_get0_name(provider); + // Clean up + EVP_MD_free(md); + + if (strcmp("fips", name)) { + return 0; + } else { + return 1; + } #else + UNREFERENCED(o); /* FIPS is unavailable */ tcn_ThrowException(e, "FIPS was not available to tcnative at build time. You will need to re-build tcnative against an OpenSSL with FIPS."); @@ -954,6 +975,9 @@ TCN_IMPLEMENT_CALL(jint, SSL, fipsModeSet)(TCN_STDARGS, jint mode) tcn_ThrowException(e, msg); } +#elif (OPENSSL_VERSION_NUMBER > 0x2FFFFFFFL) + /* This method should never be called when using OpenSSL 3.x onwards */ + tcn_ThrowException(e, "fipsModeSet is not supported in OpenSSL 3.x onwards."); #else /* FIPS is unavailable */ tcn_ThrowException(e, "FIPS was not available to tcnative at build time. You will need to re-build tcnative against an OpenSSL with FIPS."); @@ -2001,6 +2025,10 @@ TCN_IMPLEMENT_CALL(jbyteArray, SSL, getSessionId)(TCN_STDARGS, jlong ssl) } UNREFERENCED(o); session = SSL_get_session(ssl_); + if (NULL == session) { + return NULL; + } + session_id = SSL_SESSION_get_id(session, &len); if (len == 0 || session_id == NULL) { diff --git a/native/src/sslutils.c b/native/src/sslutils.c index 46898be..c3bd41a 100644 --- a/native/src/sslutils.c +++ b/native/src/sslutils.c @@ -27,7 +27,7 @@ extern int WIN32_SSL_password_prompt(tcn_pass_cb_t *data); #endif -#ifdef HAVE_OCSP_STAPLING +#ifdef HAVE_OCSP #include #include /* defines with the values as seen by the asn1parse -dump openssl command */ @@ -356,7 +356,7 @@ int SSL_callback_SSL_verify(int ok, X509_STORE_CTX *ctx) X509_STORE_CTX_set_error(ctx, -1); } -#ifdef HAVE_OCSP_STAPLING +#ifdef HAVE_OCSP /* First perform OCSP validation if possible */ if (ocsp_check_type == 0) { if (ok) { @@ -528,7 +528,7 @@ int SSL_callback_alpn_select_proto(SSL* ssl, const unsigned char **out, unsigned tcn_ssl_ctxt_t *ssl_ctxt = arg; return select_next_proto(ssl, out, outlen, in, inlen, ssl_ctxt->alpn_proto_data, ssl_ctxt->alpn_proto_len, ssl_ctxt->alpn_selector_failure_behavior); } -#ifdef HAVE_OCSP_STAPLING +#ifdef HAVE_OCSP /* Function that is used to do the OCSP verification */ static int ssl_verify_OCSP(X509_STORE_CTX *ctx) @@ -1125,5 +1125,5 @@ static int ssl_ocsp_request(X509 *cert, X509 *issuer, X509_STORE_CTX *ctx) return OCSP_STATUS_UNKNOWN; } -#endif /* HAVE_OCSP_STAPLING */ +#endif /* HAVE_OCSP */ #endif /* HAVE_OPENSSL */ diff --git a/native/srclib/VERSIONS b/native/srclib/VERSIONS index cbb4ac3..4fb768f 100644 --- a/native/srclib/VERSIONS +++ b/native/srclib/VERSIONS @@ -5,7 +5,7 @@ The current minimum versions are: The following version of the libraries are recommended: - APR 1.7.0 or later, http://apr.apache.org -- OpenSSL 1.1.1k or later, http://www.openssl.org +- OpenSSL 1.1.1q or later, http://www.openssl.org Older versions should also work but are not as thoroughly tested by the Tomcat Native team @@ -20,14 +20,15 @@ The minimum version of OpenSSL is driven by the version of OpenSSL used by downstream distributions. The current state of OpenSSL in Debian is: -- OpenSSL 1.1.0l in Debian 9 (EOL in June 2022) -- OpenSSL 1.1.1d in Debian 10 +- OpenSSL 1.1.0l in Debian 9 (EOL end June 2022) +- OpenSSL 1.1.1n in Debian 10 (EOL end June 2024) +- OpenSSL 1.1.1n in Debian 11 (EOL end June 2026) And in Ubuntu: - OpenSSL 1.0.2g in Ubuntu 16.04 LTS (EOL in April 2021) -- OpenSSL 1.1.1 in Ubuntu 18.04 LTS -- OpenSSL 1.1.1f in Ubuntu 20.04 LTS - +- OpenSSL 1.1.1 in Ubuntu 18.04 LTS (EOL in April 2028) +- OpenSSL 1.1.1f in Ubuntu 20.04 LTS (EOL in April 2030) +- OpenSSL 3.0.2 in Ubuntu 22.04 LTS (EOL in April 2032) The minimum version of APR is driven by the version of APR used by downstream distributions. @@ -38,5 +39,6 @@ The current state of APR in Debian is: And in Ubuntu: - APR 1.5.2 in Ubuntu 16.04 LTS (EOL in April 2021) -- APR 1.6.3 in Ubuntu 18.04 LTS -- APR 1.6.5 in Ubuntu 20.04 LTS +- APR 1.6.3 in Ubuntu 18.04 LTS (EOL in April 2028) +- APR 1.6.5 in Ubuntu 20.04 LTS (EOL in April 2030) +- APR 1.7.0 in Ubuntu 22.04 LTS (EOL in April 2032) diff --git a/native/srclib/apr/NMAKEmakefile b/native/srclib/apr/NMAKEmakefile index 1d760a3..9cd5f71 100644 --- a/native/srclib/apr/NMAKEmakefile +++ b/native/srclib/apr/NMAKEmakefile @@ -15,7 +15,7 @@ # # ==================================================================== # -# NMAKEmakefile Master APR makefile. +# NMAKEmakefile APR makefile. # Usage: # DLL=1 Build DLL version # DEBUG=1 Build DEBUG version of APR diff --git a/native/srclib/openssl/openssl-msvcrt-3.0.x.patch b/native/srclib/openssl/openssl-msvcrt-3.0.x.patch new file mode 100644 index 0000000..2f5634e --- /dev/null +++ b/native/srclib/openssl/openssl-msvcrt-3.0.x.patch @@ -0,0 +1,86 @@ +diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf +index 66bc81dfb4..52345e4f33 100644 +--- a/Configurations/10-main.conf ++++ b/Configurations/10-main.conf +@@ -1369,7 +1369,7 @@ my %targets = ( + # prefer [non-debug] openssl.exe to be free from Micorosoft RTL + # redistributable. + bin_cflags => add(picker(debug => "/MDd", +- release => sub { $disabled{shared} ? "/MT" : () }, ++ release => "/MD", + )), + bin_lflags => add("/subsystem:console /opt:ref"), + ex_libs => add(sub { +diff --git a/apps/lib/s_socket.c b/apps/lib/s_socket.c +index 059afe47b9..cbece5fcb3 100644 +--- a/apps/lib/s_socket.c ++++ b/apps/lib/s_socket.c +@@ -31,7 +31,7 @@ typedef unsigned int u_int; + + /* MSVC renamed some POSIX functions to have an underscore prefix. */ + # ifdef _MSC_VER +-# define getpid _getpid ++# define getpid GetCurrentProcessId + # endif + #endif + +diff --git a/crypto/cmp/cmp_util.c b/crypto/cmp/cmp_util.c +index ed611d64dd..09238bfb7d 100644 +--- a/crypto/cmp/cmp_util.c ++++ b/crypto/cmp/cmp_util.c +@@ -9,6 +9,7 @@ + * https://www.openssl.org/source/license.html + */ + ++#include "e_os.h" + #include + #include + #include "cmp_local.h" /* just for decls of internal functions defined here */ +diff --git a/crypto/engine/eng_openssl.c b/crypto/engine/eng_openssl.c +index 91656e6b80..e0692e5618 100644 +--- a/crypto/engine/eng_openssl.c ++++ b/crypto/engine/eng_openssl.c +@@ -18,6 +18,7 @@ + #include "internal/deprecated.h" + + #include ++#include "e_os.h" + #include + #include "internal/cryptlib.h" + #include "crypto/engine.h" +diff --git a/engines/e_capi.c b/engines/e_capi.c +index 6f223a6922..045d1368fd 100644 +--- a/engines/e_capi.c ++++ b/engines/e_capi.c +@@ -18,6 +18,7 @@ + # include + + # include ++# include "e_os.h" + # include + # include + # include +diff --git a/test/testutil/basic_output.c b/test/testutil/basic_output.c +index 92f3de9300..e84301946e 100644 +--- a/test/testutil/basic_output.c ++++ b/test/testutil/basic_output.c +@@ -7,6 +7,7 @@ + * https://www.openssl.org/source/license.html + */ + ++#include "e_os.h" + #include "../testutil.h" + #include "output.h" + #include "tu_local.h" +diff --git a/test/testutil/provider.c b/test/testutil/provider.c +index d073d732da..8a96f9a151 100644 +--- a/test/testutil/provider.c ++++ b/test/testutil/provider.c +@@ -7,6 +7,7 @@ + * https://www.openssl.org/source/license.html + */ + ++#include "e_os.h" + #include "../testutil.h" + #include + #include diff --git a/native/tcnative.spec b/native/tcnative.spec index 57f6cd9..19ffb8b 100644 --- a/native/tcnative.spec +++ b/native/tcnative.spec @@ -21,7 +21,7 @@ Summary: Tomcat Native Java library Name: tcnative -Version: 1.2.31 +Version: 1.2.35 Release: 1 License: Apache Software License Group: System Environment/Libraries diff --git a/xdocs/index.xml b/xdocs/index.xml index 52eacb2..cc2d518 100644 --- a/xdocs/index.xml +++ b/xdocs/index.xml @@ -60,10 +60,10 @@
    -
  • 31 Aug 2021 - TC-Native-1.2.31 +
  • 14 June 2022 - TC-Native-1.2.34 released

    The Apache Tomcat team is proud to announce the immediate availability of -Tomcat Native 1.2.31 Stable.

    +Tomcat Native 1.2.34 Stable.

    The sources and the binaries for selected platforms are available from the Download page. diff --git a/xdocs/miscellaneous/changelog.xml b/xdocs/miscellaneous/changelog.xml index 04a9a5f..ea11989 100644 --- a/xdocs/miscellaneous/changelog.xml +++ b/xdocs/miscellaneous/changelog.xml @@ -23,10 +23,6 @@ &project; - - Jean-Frederic Clere - -

    @@ -34,6 +30,57 @@ This is the Changelog for Tomcat Native 1.2.

    +
    + + + Document the TLS rengotiation behaviour. (markt) + + + Add HOWTO-RELEASE.txt that describes the release process. (markt) + + + Update recommended OpenSSL version to 1.1.1q or later. (markt) + + +
    +
    + + + Refactor library initialization so it is compatible with Tomcat 10.1.x + onwards where a number of Java classes have been removed. (markt) + + + Map the OpenSSL 3.x FIPS behaviour to the OpenSSL 1.x API to allow clients + to determine if the FIPS provider is being used when Tomcat Native is + compiled against OpenSSL 3.x. (markt) + + +
    +
    + + + 66035: Fix crash when attempting to read TLS session ID after a + handshake failure. (schultz/markt) + + + Enable download_deps.sh to be called from any directory. Pull + request 12 provided by Dimitrios Soumis. (markt) + + + Update recommended OpenSSL version to 1.1.1o or later. (markt) + + +
    +
    + + + Update recommended OpenSSL version to 1.1.1n or later. (markt) + + + Fix release script so it works with the current git layout. (markt) + + +
    @@ -128,7 +175,7 @@ Remove default option passed for rpath to linker on HP-UX. (michaelo) - Add an option to allow the OCSP responder check to by bypassed. Note that + Add an option to allow the OCSP responder check to be bypassed. Note that if OCSP is enabled, a missing responder is now treated as an error. (jfclere) diff --git a/xdocs/miscellaneous/project.xml b/xdocs/miscellaneous/project.xml index 36e85fd..1153ee1 100644 --- a/xdocs/miscellaneous/project.xml +++ b/xdocs/miscellaneous/project.xml @@ -31,9 +31,11 @@ + + diff --git a/xdocs/miscellaneous/tls-renegotiation.xml b/xdocs/miscellaneous/tls-renegotiation.xml new file mode 100644 index 0000000..42904ec --- /dev/null +++ b/xdocs/miscellaneous/tls-renegotiation.xml @@ -0,0 +1,50 @@ + + + +]> + + + + &project; + + + +
    +

    + Historically there have been security issues associated with TLS + renegotiation. This page describes the renegotiation behaviour of the Tomcat + Native library. +

    +
    +
    +

    + Client initiated renegotiation is disabled. This behaviour is hard-coded and + cannot be changed. +

    +
    +
    +

    + Support for unsafe legacy negotiation depends on OpenSSL. Unsafe legacy + renegotiation is disabled by default and will not be allowed unless the + OpenSSL configuration option + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION is set. +

    +
    + +
    diff --git a/xdocs/news/2021.xml b/xdocs/news/2021.xml index 034dfb9..91263b1 100644 --- a/xdocs/news/2021.xml +++ b/xdocs/news/2021.xml @@ -29,7 +29,7 @@
    - +

    The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.31. This is a bugfix release.

    diff --git a/xdocs/news/2022.xml b/xdocs/news/2022.xml new file mode 100644 index 0000000..0d27c55 --- /dev/null +++ b/xdocs/news/2022.xml @@ -0,0 +1,49 @@ + + + +]> + + + &project; + + + 2022 News and Status + + + + +
    + +

    The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.34. This is a bugfix release. +

    +
    + +

    The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.33. This is a bugfix release. +

    +
    + +

    The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.32. This is a bugfix release. +

    +
    +
    + +
    diff --git a/xdocs/news/project.xml b/xdocs/news/project.xml index 939d6fb..20c66ba 100644 --- a/xdocs/news/project.xml +++ b/xdocs/news/project.xml @@ -30,10 +30,12 @@
    - + + + diff --git a/xdocs/project.xml b/xdocs/project.xml index 15d0932..9184f96 100644 --- a/xdocs/project.xml +++ b/xdocs/project.xml @@ -30,10 +30,12 @@ - + + + diff --git a/xdocs/style.xsl b/xdocs/style.xsl index cf0da53..dfc75dd 100644 --- a/xdocs/style.xsl +++ b/xdocs/style.xsl @@ -37,6 +37,7 @@ + @@ -125,7 +126,7 @@
@@ -335,6 +336,12 @@ + + + + # + +