Merge ~lvoytek/ubuntu/+source/openvpn:update-2.6.10-oracular into ubuntu/+source/openvpn:ubuntu/devel

Proposed by Lena Voytek
Status: Merged
Approved by: git-ubuntu bot
Approved revision: not available
Merge reported by: Andreas Hasenack
Merged at revision: 626c51111b6ea32e78017385711e98e6e9200b3a
Proposed branch: ~lvoytek/ubuntu/+source/openvpn:update-2.6.10-oracular
Merge into: ubuntu/+source/openvpn:ubuntu/devel
Diff against target: 10151 lines (+2204/-1313)
307 files modified
COPYING (+1/-1)
ChangeLog (+33/-1)
Changes.rst (+52/-1)
Makefile.am (+2/-2)
Makefile.in (+3/-2)
PORTS (+1/-1)
README.mbedtls (+0/-16)
build/Makefile.in (+1/-0)
config.guess (+5/-11)
config.sub (+7/-13)
configure (+251/-128)
configure.ac (+1/-1)
contrib/OCSP_check/OCSP_check.sh (+1/-1)
contrib/cmake/git-version.py (+1/-1)
contrib/cmake/parse-version.m4.py (+1/-1)
debian/changelog (+20/-0)
debian/patches/series (+0/-1)
dev/null (+0/-86)
distro/Makefile.am (+1/-1)
distro/Makefile.in (+2/-1)
distro/systemd/Makefile.am (+5/-2)
distro/systemd/Makefile.in (+6/-2)
distro/systemd/openvpn-client@.service.in (+2/-2)
distro/systemd/openvpn-server@.service.in (+2/-2)
doc/Makefile.am (+1/-1)
doc/Makefile.in (+2/-1)
doc/doxygen/Makefile.in (+1/-0)
doc/man-sections/cipher-negotiation.rst (+1/-1)
doc/man-sections/client-options.rst (+11/-0)
doc/man-sections/generic-options.rst (+1/-1)
doc/man-sections/inline-files.rst (+1/-1)
doc/man-sections/vpn-network-options.rst (+2/-2)
doc/openvpn-examples.5 (+5/-5)
doc/openvpn-examples.5.html (+4/-4)
doc/openvpn.8 (+131/-113)
doc/openvpn.8.html (+18/-9)
include/Makefile.am (+1/-1)
include/Makefile.in (+2/-1)
include/openvpn-msg.h (+1/-1)
include/openvpn-plugin.h (+2/-2)
include/openvpn-plugin.h.in (+1/-1)
ltmain.sh (+523/-338)
m4/libtool.m4 (+141/-135)
m4/ltoptions.m4 (+2/-2)
m4/ltsugar.m4 (+1/-1)
m4/ltversion.m4 (+7/-6)
m4/lt~obsolete.m4 (+2/-2)
sample/Makefile.am (+1/-1)
sample/Makefile.in (+2/-1)
sample/sample-config-files/server.conf (+1/-1)
sample/sample-keys/gen-sample-keys.sh (+1/-1)
sample/sample-plugins/Makefile (+60/-59)
sample/sample-plugins/Makefile.am (+1/-1)
sample/sample-plugins/Makefile.in (+3/-2)
sample/sample-plugins/Makefile.plugins (+1/-1)
sample/sample-plugins/client-connect/sample-client-connect.c (+1/-1)
sample/sample-plugins/defer/multi-auth.c (+1/-1)
sample/sample-plugins/keying-material-exporter-demo/keyingmaterialexporter.c (+1/-1)
sample/sample-plugins/log/log.c (+1/-1)
sample/sample-plugins/log/log_v3.c (+2/-2)
sample/sample-plugins/simple/base64.c (+1/-1)
sample/sample-plugins/simple/simple.c (+1/-1)
src/Makefile.am (+1/-1)
src/Makefile.in (+2/-1)
src/compat/Makefile.am (+1/-1)
src/compat/Makefile.in (+2/-1)
src/compat/compat-gettimeofday.c (+1/-1)
src/compat/compat-strsep.c (+1/-1)
src/openvpn/Makefile.am (+1/-1)
src/openvpn/Makefile.in (+2/-1)
src/openvpn/argv.c (+1/-1)
src/openvpn/argv.h (+1/-1)
src/openvpn/auth_token.h (+1/-1)
src/openvpn/basic.h (+1/-1)
src/openvpn/block_dns.c (+1/-1)
src/openvpn/block_dns.h (+1/-1)
src/openvpn/buffer.c (+1/-1)
src/openvpn/buffer.h (+1/-1)
src/openvpn/circ_list.h (+1/-1)
src/openvpn/clinat.c (+1/-1)
src/openvpn/clinat.h (+1/-1)
src/openvpn/common.h (+1/-1)
src/openvpn/comp-lz4.c (+2/-2)
src/openvpn/comp-lz4.h (+2/-2)
src/openvpn/comp.c (+2/-2)
src/openvpn/comp.h (+1/-1)
src/openvpn/compstub.c (+1/-1)
src/openvpn/console.c (+2/-2)
src/openvpn/console.h (+2/-2)
src/openvpn/console_builtin.c (+2/-2)
src/openvpn/crypto.c (+1/-1)
src/openvpn/crypto.h (+1/-1)
src/openvpn/crypto_backend.h (+1/-1)
src/openvpn/crypto_mbedtls.c (+1/-1)
src/openvpn/crypto_mbedtls.h (+1/-1)
src/openvpn/crypto_openssl.c (+1/-1)
src/openvpn/crypto_openssl.h (+1/-1)
src/openvpn/dco.c (+10/-4)
src/openvpn/dco.h (+3/-3)
src/openvpn/dco_internal.h (+2/-2)
src/openvpn/dco_linux.c (+3/-3)
src/openvpn/dco_linux.h (+3/-3)
src/openvpn/dco_win.c (+2/-2)
src/openvpn/dco_win.h (+2/-2)
src/openvpn/dhcp.c (+1/-1)
src/openvpn/dhcp.h (+1/-1)
src/openvpn/dns.c (+1/-1)
src/openvpn/dns.h (+1/-1)
src/openvpn/env_set.c (+2/-2)
src/openvpn/env_set.h (+1/-1)
src/openvpn/errlevel.h (+1/-1)
src/openvpn/error.c (+1/-1)
src/openvpn/error.h (+2/-8)
src/openvpn/event.c (+1/-1)
src/openvpn/event.h (+1/-1)
src/openvpn/fdmisc.c (+1/-1)
src/openvpn/fdmisc.h (+1/-1)
src/openvpn/forward.c (+1/-1)
src/openvpn/forward.h (+1/-1)
src/openvpn/fragment.c (+1/-1)
src/openvpn/fragment.h (+2/-2)
src/openvpn/gremlin.c (+1/-1)
src/openvpn/gremlin.h (+1/-1)
src/openvpn/helper.c (+1/-1)
src/openvpn/helper.h (+1/-1)
src/openvpn/httpdigest.c (+1/-1)
src/openvpn/httpdigest.h (+1/-1)
src/openvpn/init.c (+1/-7)
src/openvpn/init.h (+1/-1)
src/openvpn/integer.h (+1/-1)
src/openvpn/interval.c (+1/-1)
src/openvpn/interval.h (+1/-1)
src/openvpn/list.c (+1/-1)
src/openvpn/list.h (+1/-1)
src/openvpn/lzo.c (+1/-1)
src/openvpn/lzo.h (+1/-1)
src/openvpn/manage.c (+1/-1)
src/openvpn/manage.h (+1/-1)
src/openvpn/mbuf.c (+1/-1)
src/openvpn/mbuf.h (+1/-1)
src/openvpn/memdbg.h (+1/-1)
src/openvpn/misc.c (+2/-2)
src/openvpn/misc.h (+1/-1)
src/openvpn/mroute.c (+1/-1)
src/openvpn/mroute.h (+1/-1)
src/openvpn/mss.c (+1/-1)
src/openvpn/mss.h (+1/-1)
src/openvpn/mstats.c (+1/-1)
src/openvpn/mstats.h (+1/-1)
src/openvpn/mtcp.c (+1/-1)
src/openvpn/mtcp.h (+1/-1)
src/openvpn/mtu.c (+1/-1)
src/openvpn/mtu.h (+1/-1)
src/openvpn/mudp.c (+1/-1)
src/openvpn/mudp.h (+1/-1)
src/openvpn/multi.c (+1/-1)
src/openvpn/multi.h (+1/-1)
src/openvpn/networking.h (+1/-1)
src/openvpn/networking_iproute2.c (+1/-1)
src/openvpn/networking_iproute2.h (+1/-1)
src/openvpn/networking_sitnl.c (+1/-1)
src/openvpn/networking_sitnl.h (+1/-1)
src/openvpn/occ.c (+1/-1)
src/openvpn/occ.h (+1/-1)
src/openvpn/openssl_compat.h (+1/-1)
src/openvpn/openvpn.c (+1/-1)
src/openvpn/openvpn.h (+1/-1)
src/openvpn/options.c (+3/-3)
src/openvpn/options.h (+1/-1)
src/openvpn/options_util.c (+1/-1)
src/openvpn/options_util.h (+1/-1)
src/openvpn/otime.c (+1/-1)
src/openvpn/otime.h (+1/-1)
src/openvpn/packet_id.c (+1/-1)
src/openvpn/packet_id.h (+1/-1)
src/openvpn/perf.c (+1/-1)
src/openvpn/perf.h (+1/-1)
src/openvpn/ping.c (+1/-1)
src/openvpn/ping.h (+1/-1)
src/openvpn/pkcs11.c (+1/-1)
src/openvpn/pkcs11.h (+1/-1)
src/openvpn/pkcs11_backend.h (+1/-1)
src/openvpn/pkcs11_mbedtls.c (+1/-1)
src/openvpn/pkcs11_openssl.c (+1/-1)
src/openvpn/platform.c (+1/-1)
src/openvpn/platform.h (+1/-1)
src/openvpn/plugin.c (+16/-4)
src/openvpn/plugin.h (+1/-1)
src/openvpn/pool.c (+1/-1)
src/openvpn/pool.h (+1/-1)
src/openvpn/proto.c (+1/-1)
src/openvpn/proto.h (+1/-1)
src/openvpn/proxy.c (+1/-1)
src/openvpn/proxy.h (+1/-1)
src/openvpn/ps.c (+1/-1)
src/openvpn/ps.h (+1/-1)
src/openvpn/push.c (+1/-1)
src/openvpn/push.h (+1/-1)
src/openvpn/pushlist.h (+1/-1)
src/openvpn/reflect_filter.c (+1/-1)
src/openvpn/reflect_filter.h (+1/-1)
src/openvpn/reliable.c (+1/-1)
src/openvpn/reliable.h (+1/-1)
src/openvpn/ring_buffer.h (+1/-1)
src/openvpn/route.c (+1/-1)
src/openvpn/route.h (+1/-1)
src/openvpn/run_command.c (+1/-1)
src/openvpn/run_command.h (+1/-1)
src/openvpn/schedule.c (+1/-1)
src/openvpn/schedule.h (+1/-1)
src/openvpn/session_id.c (+1/-1)
src/openvpn/session_id.h (+1/-1)
src/openvpn/shaper.c (+1/-1)
src/openvpn/shaper.h (+1/-1)
src/openvpn/sig.c (+1/-1)
src/openvpn/sig.h (+1/-1)
src/openvpn/socket.c (+1/-1)
src/openvpn/socket.h (+1/-1)
src/openvpn/socks.c (+1/-1)
src/openvpn/socks.h (+1/-1)
src/openvpn/ssl.c (+2/-2)
src/openvpn/ssl.h (+1/-1)
src/openvpn/ssl_backend.h (+1/-1)
src/openvpn/ssl_common.h (+1/-1)
src/openvpn/ssl_mbedtls.c (+1/-1)
src/openvpn/ssl_mbedtls.h (+1/-1)
src/openvpn/ssl_ncp.c (+2/-2)
src/openvpn/ssl_ncp.h (+1/-1)
src/openvpn/ssl_openssl.c (+1/-1)
src/openvpn/ssl_openssl.h (+1/-1)
src/openvpn/ssl_pkt.c (+1/-1)
src/openvpn/ssl_pkt.h (+1/-1)
src/openvpn/ssl_util.c (+1/-1)
src/openvpn/ssl_util.h (+1/-1)
src/openvpn/ssl_verify.c (+1/-1)
src/openvpn/ssl_verify.h (+1/-1)
src/openvpn/ssl_verify_backend.h (+1/-1)
src/openvpn/ssl_verify_mbedtls.c (+1/-1)
src/openvpn/ssl_verify_mbedtls.h (+1/-1)
src/openvpn/ssl_verify_openssl.c (+1/-1)
src/openvpn/ssl_verify_openssl.h (+1/-1)
src/openvpn/status.c (+1/-1)
src/openvpn/status.h (+1/-1)
src/openvpn/syshead.h (+1/-1)
src/openvpn/tun.c (+1/-1)
src/openvpn/tun.h (+1/-1)
src/openvpn/vlan.c (+1/-1)
src/openvpn/vlan.h (+1/-1)
src/openvpn/win32-util.c (+1/-1)
src/openvpn/win32-util.h (+1/-1)
src/openvpn/win32.c (+66/-13)
src/openvpn/win32.h (+28/-1)
src/openvpn/xkey_common.h (+1/-1)
src/openvpn/xkey_helper.c (+1/-1)
src/openvpn/xkey_provider.c (+1/-1)
src/openvpnmsica/Makefile.am (+2/-2)
src/openvpnmsica/Makefile.in (+3/-2)
src/openvpnmsica/dllmain.c (+1/-1)
src/openvpnmsica/msica_arg.c (+1/-1)
src/openvpnmsica/msica_arg.h (+1/-1)
src/openvpnmsica/msiex.c (+1/-1)
src/openvpnmsica/msiex.h (+1/-1)
src/openvpnmsica/openvpnmsica.c (+1/-1)
src/openvpnmsica/openvpnmsica.h (+1/-1)
src/openvpnmsica/openvpnmsica_resources.rc (+1/-1)
src/openvpnserv/Makefile.am (+1/-1)
src/openvpnserv/Makefile.in (+2/-1)
src/openvpnserv/common.c (+1/-1)
src/openvpnserv/interactive.c (+24/-17)
src/openvpnserv/service.h (+1/-1)
src/openvpnserv/validate.c (+1/-1)
src/openvpnserv/validate.h (+1/-1)
src/plugins/Makefile.am (+1/-1)
src/plugins/Makefile.in (+2/-1)
src/plugins/auth-pam/Makefile.in (+1/-0)
src/plugins/auth-pam/auth-pam.c (+2/-2)
src/plugins/auth-pam/utils.c (+1/-1)
src/plugins/auth-pam/utils.h (+1/-1)
src/plugins/down-root/Makefile.in (+1/-0)
src/plugins/down-root/down-root.c (+1/-1)
src/tapctl/Makefile.am (+2/-2)
src/tapctl/Makefile.in (+3/-2)
src/tapctl/basic.h (+2/-2)
src/tapctl/error.c (+2/-2)
src/tapctl/error.h (+2/-2)
src/tapctl/main.c (+2/-2)
src/tapctl/tap.c (+1/-1)
src/tapctl/tap.h (+1/-1)
src/tapctl/tapctl_resources.rc (+1/-1)
tests/Makefile.am (+15/-1)
tests/Makefile.in (+330/-13)
tests/ntlm_support.c (+52/-0)
tests/t_client.rc-sample (+25/-7)
tests/t_client.sh.in (+14/-0)
tests/unit_tests/Makefile.in (+1/-0)
tests/unit_tests/example_test/Makefile.in (+1/-0)
tests/unit_tests/openvpn/Makefile.in (+1/-0)
tests/unit_tests/openvpn/cert_data.h (+1/-1)
tests/unit_tests/openvpn/mock_msg.c (+13/-1)
tests/unit_tests/openvpn/mock_win32_execve.c (+2/-2)
tests/unit_tests/openvpn/test_cryptoapi.c (+1/-1)
tests/unit_tests/openvpn/test_misc.c (+1/-1)
tests/unit_tests/openvpn/test_ncp.c (+1/-1)
tests/unit_tests/openvpn/test_provider.c (+1/-1)
tests/unit_tests/plugins/Makefile.in (+1/-0)
tests/unit_tests/plugins/auth-pam/Makefile.in (+1/-0)
version.m4 (+1/-1)
Reviewer Review Type Date Requested Status
git-ubuntu bot Approve
Andreas Hasenack Approve
Canonical Server Reporter Pending
Review via email: mp+465346@code.launchpad.net

Description of the change

Update oracular to 2.6.10 to prepare for MRE of noble + mantic

PPA: https://launchpad.net/~lvoytek/+archive/ubuntu/openvpn-mre

To post a comment you must log in.
626c511... by Lena Voytek

changelog

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I downloaded the detached signature via https, and imported the signing gpg key. The key verified both the current tarball 2.6.9, as well as the new one 2.6.10.

I also checked that the commit updating the version to 2.6.10 matches the downloaded 2.6.10 tarball.

No worrying upstream changes in 2.6.10 for us, or that would impact our delta.

+1

review: Approve
Revision history for this message
git-ubuntu bot (git-ubuntu-bot) wrote :

Approvers: lvoytek, ahasenack
Uploaders: lvoytek, ahasenack
MP auto-approved

review: Approve
Revision history for this message
Lena Voytek (lvoytek) wrote :

Thanks! Uploaded

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

This is in oracular proposed[1] already, marking MP as merged.

1. https://launchpad.net/ubuntu/+source/openvpn/2.6.10-0ubuntu1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/COPYING b/COPYING
index 28525d7..00ecc27 100644
--- a/COPYING
+++ b/COPYING
@@ -1,6 +1,6 @@
1OpenVPN (TM) -- An Open Source VPN daemon1OpenVPN (TM) -- An Open Source VPN daemon
22
3Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>3Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
44
5This distribution contains multiple components, some5This distribution contains multiple components, some
6of which fall under different licenses. By using OpenVPN6of which fall under different licenses. By using OpenVPN
diff --git a/ChangeLog b/ChangeLog
index 3cf6b50..c0c06ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,37 @@
1OpenVPN ChangeLog1OpenVPN ChangeLog
2Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>2Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
3
42024.03.20 -- Version 2.6.10
5
6Christoph Schug (1):
7 Update documentation references in systemd unit files
8
9Frank Lichtenheld (6):
10 Fix typo --data-cipher-fallback
11 samples: Remove tls-*.conf
12 check_compression_settings_valid: Do not test for LZ4 in LZO check
13 t_client.sh: Allow to skip tests
14 Update Copyright statements to 2024
15 GHA: general update March 2024
16
17Lev Stipakov (4):
18 win32: Enforce loading of plugins from a trusted directory
19 interactive.c: disable remote access to the service pipe
20 interactive.c: Fix potential stack overflow issue
21 Disable DCO if proxy is set via management
22
23Martin Rys (1):
24 openvpn-[client|server].service: Remove syslog.target
25
26Max Fillinger (1):
27 Remove license warning from README.mbedtls
28
29Selva Nair (1):
30 Document that auth-user-pass may be inlined
31
32wellweek (1):
33 remove repetitive words in documentation and comments
34
335
42024.02.11 -- Version 2.6.9362024.02.11 -- Version 2.6.9
537
diff --git a/Changes.rst b/Changes.rst
index 2b8e6f5..029c807 100644
--- a/Changes.rst
+++ b/Changes.rst
@@ -1,3 +1,54 @@
1Overview of changes in 2.6.10
2=============================
3Security fixes
4--------------
5- CVE-2024-27459: Windows: fix a possible stack overflow in the
6 interactive service component which might lead to a local privilege
7 escalation.
8 Reported-by: Vladimir Tokarev <vtokarev@microsoft.com>
9
10- CVE-2024-24974: Windows: disallow access to the interactive service
11 pipe from remote computers.
12 Reported-by: Vladimir Tokarev <vtokarev@microsoft.com>
13
14- CVE-2024-27903: Windows: disallow loading of plugins from untrusted
15 installation paths, which could be used to attack openvpn.exe via
16 a malicious plugin. Plugins can now only be loaded from the OpenVPN
17 install directory, the Windows system directory, and possibly from
18 a directory specified by HKLM\SOFTWARE\OpenVPN\plugin_dir.
19 Reported-by: Vladimir Tokarev <vtokarev@microsoft.com>
20
21Bug fixes
22---------
23- Windows: if the win-dco driver is used (default) and the GUI requests
24 use of a proxy server, the connection would fail. Disable DCO in
25 this case. (Github: #522)
26
27- Compression: minor bugfix in checking option consistency vs. compiled-in
28 algorithm support
29
30- systemd unit files: remove obsolete syslog.target
31
32User visible changes
33--------------------
34- Update copyright notices to 2024
35
36New features
37------------
38- t_client.sh can now run pre-tests and skip a test block if needed
39 (e.g. skip NTLM proxy tests if SSL library does not support MD4)
40
41Documentation
42-------------
43- remove license warnings about mbedTLS linking (README.mbedtls)
44
45- update documentation references in systemd unit files
46
47- sample config files: remove obsolete tls-*.conf files
48
49- document that auth-user-pass may be inlined
50
51
1Overview of changes in 2.6.952Overview of changes in 2.6.9
2============================53============================
354
@@ -1453,7 +1504,7 @@ Control channel encryption (``--tls-crypt``)
1453Asynchronous push reply1504Asynchronous push reply
1454 Plug-ins providing support for deferred authentication can benefit from a more1505 Plug-ins providing support for deferred authentication can benefit from a more
1455 responsive authentication where the server sends PUSH_REPLY immediately once1506 responsive authentication where the server sends PUSH_REPLY immediately once
1456 the authentication result is ready, instead of waiting for the the client to1507 the authentication result is ready, instead of waiting for the client to
1457 to send PUSH_REQUEST once more. This requires OpenVPN to be built with1508 to send PUSH_REQUEST once more. This requires OpenVPN to be built with
1458 ``./configure --enable-async-push``. This is a compile-time only switch.1509 ``./configure --enable-async-push``. This is a compile-time only switch.
14591510
diff --git a/Makefile.am b/Makefile.am
index 7478cc5..e4203aa 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,8 +5,8 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9# Copyright (C) 2010-2023 David Sommerseth <dazo@eurephia.org>9# Copyright (C) 2010-2024 David Sommerseth <dazo@eurephia.org>
10# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>10# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
11#11#
12# This program is free software; you can redistribute it and/or modify12# This program is free software; you can redistribute it and/or modify
diff --git a/Makefile.in b/Makefile.in
index fb26773..a1e9ed8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -21,8 +21,8 @@
21# packet encryption, packet authentication, and21# packet encryption, packet authentication, and
22# packet compression.22# packet compression.
23#23#
24# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>24# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
25# Copyright (C) 2010-2023 David Sommerseth <dazo@eurephia.org>25# Copyright (C) 2010-2024 David Sommerseth <dazo@eurephia.org>
26# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>26# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
27#27#
28# This program is free software; you can redistribute it and/or modify28# This program is free software; you can redistribute it and/or modify
@@ -296,6 +296,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
296ETAGS = @ETAGS@296ETAGS = @ETAGS@
297EXEEXT = @EXEEXT@297EXEEXT = @EXEEXT@
298FGREP = @FGREP@298FGREP = @FGREP@
299FILECMD = @FILECMD@
299GIT = @GIT@300GIT = @GIT@
300GREP = @GREP@301GREP = @GREP@
301IFCONFIG = @IFCONFIG@302IFCONFIG = @IFCONFIG@
diff --git a/PORTS b/PORTS
index dd156d0..dadc6f8 100644
--- a/PORTS
+++ b/PORTS
@@ -1,5 +1,5 @@
1OpenVPN1OpenVPN
2Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>2Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
33
4 OpenVPN has been written to try to avoid features4 OpenVPN has been written to try to avoid features
5 that are not standardized well across different5 that are not standardized well across different
diff --git a/README.mbedtls b/README.mbedtls
index 124eaa2..c4f3924 100644
--- a/README.mbedtls
+++ b/README.mbedtls
@@ -11,22 +11,6 @@ This version requires mbed TLS version >= 2.0.0 or >= 3.2.1.
1111
12*************************************************************************12*************************************************************************
1313
14Warning:
15
16As of mbed TLS 2.17, it can be licensed *only* under the Apache v2.0 license.
17That license is incompatible with OpenVPN's GPLv2.
18
19We are currently in the process of resolving this problem, but for now, if you
20wish to distribute OpenVPN linked with mbed TLS, there are two options:
21
22 * Ensure that your case falls under the system library exception in GPLv2, or
23
24 * Use an earlier version of mbed TLS. Version 2.16.12 is the last release
25 that may be licensed under GPLv2. Unfortunately, this version is
26 unsupported and won't receive any more updates.
27
28*************************************************************************
29
30Due to limitations in the mbed TLS library, the following features are missing14Due to limitations in the mbed TLS library, the following features are missing
31in the mbed TLS version of OpenVPN:15in the mbed TLS version of OpenVPN:
3216
diff --git a/build/Makefile.in b/build/Makefile.in
index a9a992e..70a4aa5 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -168,6 +168,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
168ETAGS = @ETAGS@168ETAGS = @ETAGS@
169EXEEXT = @EXEEXT@169EXEEXT = @EXEEXT@
170FGREP = @FGREP@170FGREP = @FGREP@
171FILECMD = @FILECMD@
171GIT = @GIT@172GIT = @GIT@
172GREP = @GREP@173GREP = @GREP@
173IFCONFIG = @IFCONFIG@174IFCONFIG = @IFCONFIG@
diff --git a/config.guess b/config.guess
index 7f76b62..e81d3ae 100755
--- a/config.guess
+++ b/config.guess
@@ -1,14 +1,14 @@
1#! /bin/sh1#! /bin/sh
2# Attempt to guess a canonical system name.2# Attempt to guess a canonical system name.
3# Copyright 1992-2022 Free Software Foundation, Inc.3# Copyright 1992-2021 Free Software Foundation, Inc.
44
5# shellcheck disable=SC2006,SC2268 # see below for rationale5# shellcheck disable=SC2006,SC2268 # see below for rationale
66
7timestamp='2022-01-09'7timestamp='2021-06-03'
88
9# This file is free software; you can redistribute it and/or modify it9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or11# the Free Software Foundation; either version 3 of the License, or
12# (at your option) any later version.12# (at your option) any later version.
13#13#
14# This program is distributed in the hope that it will be useful, but14# This program is distributed in the hope that it will be useful, but
@@ -60,7 +60,7 @@ version="\
60GNU config.guess ($timestamp)60GNU config.guess ($timestamp)
6161
62Originally written by Per Bothner.62Originally written by Per Bothner.
63Copyright 1992-2022 Free Software Foundation, Inc.63Copyright 1992-2021 Free Software Foundation, Inc.
6464
65This is free software; see the source for copying conditions. There is NO65This is free software; see the source for copying conditions. There is NO
66warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."66warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -437,7 +437,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
437 # This test works for both compilers.437 # This test works for both compilers.
438 if test "$CC_FOR_BUILD" != no_compiler_found; then438 if test "$CC_FOR_BUILD" != no_compiler_found; then
439 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \439 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
440 (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \440 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
441 grep IS_64BIT_ARCH >/dev/null441 grep IS_64BIT_ARCH >/dev/null
442 then442 then
443 SUN_ARCH=x86_64443 SUN_ARCH=x86_64
@@ -929,9 +929,6 @@ EOF
929 i*:PW*:*)929 i*:PW*:*)
930 GUESS=$UNAME_MACHINE-pc-pw32930 GUESS=$UNAME_MACHINE-pc-pw32
931 ;;931 ;;
932 *:SerenityOS:*:*)
933 GUESS=$UNAME_MACHINE-pc-serenity
934 ;;
935 *:Interix*:*)932 *:Interix*:*)
936 case $UNAME_MACHINE in933 case $UNAME_MACHINE in
937 x86)934 x86)
@@ -1525,9 +1522,6 @@ EOF
1525 i*86:rdos:*:*)1522 i*86:rdos:*:*)
1526 GUESS=$UNAME_MACHINE-pc-rdos1523 GUESS=$UNAME_MACHINE-pc-rdos
1527 ;;1524 ;;
1528 i*86:Fiwix:*:*)
1529 GUESS=$UNAME_MACHINE-pc-fiwix
1530 ;;
1531 *:AROS:*:*)1525 *:AROS:*:*)
1532 GUESS=$UNAME_MACHINE-unknown-aros1526 GUESS=$UNAME_MACHINE-unknown-aros
1533 ;;1527 ;;
diff --git a/config.sub b/config.sub
index dba16e8..d74fb6d 100755
--- a/config.sub
+++ b/config.sub
@@ -1,14 +1,14 @@
1#! /bin/sh1#! /bin/sh
2# Configuration validation subroutine script.2# Configuration validation subroutine script.
3# Copyright 1992-2022 Free Software Foundation, Inc.3# Copyright 1992-2021 Free Software Foundation, Inc.
44
5# shellcheck disable=SC2006,SC2268 # see below for rationale5# shellcheck disable=SC2006,SC2268 # see below for rationale
66
7timestamp='2022-01-03'7timestamp='2021-08-14'
88
9# This file is free software; you can redistribute it and/or modify it9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or11# the Free Software Foundation; either version 3 of the License, or
12# (at your option) any later version.12# (at your option) any later version.
13#13#
14# This program is distributed in the hope that it will be useful, but14# This program is distributed in the hope that it will be useful, but
@@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
76version="\76version="\
77GNU config.sub ($timestamp)77GNU config.sub ($timestamp)
7878
79Copyright 1992-2022 Free Software Foundation, Inc.79Copyright 1992-2021 Free Software Foundation, Inc.
8080
81This is free software; see the source for copying conditions. There is NO81This is free software; see the source for copying conditions. There is NO
82warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."82warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -1020,11 +1020,6 @@ case $cpu-$vendor in
1020 ;;1020 ;;
10211021
1022 # Here we normalize CPU types with a missing or matching vendor1022 # Here we normalize CPU types with a missing or matching vendor
1023 armh-unknown | armh-alt)
1024 cpu=armv7l
1025 vendor=alt
1026 basic_os=${basic_os:-linux-gnueabihf}
1027 ;;
1028 dpx20-unknown | dpx20-bull)1023 dpx20-unknown | dpx20-bull)
1029 cpu=rs60001024 cpu=rs6000
1030 vendor=bull1025 vendor=bull
@@ -1126,7 +1121,7 @@ case $cpu-$vendor in
1126 xscale-* | xscalee[bl]-*)1121 xscale-* | xscalee[bl]-*)
1127 cpu=`echo "$cpu" | sed 's/^xscale/arm/'`1122 cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1128 ;;1123 ;;
1129 arm64-* | aarch64le-*)1124 arm64-*)
1130 cpu=aarch641125 cpu=aarch64
1131 ;;1126 ;;
11321127
@@ -1309,7 +1304,7 @@ esac
1309if test x$basic_os != x1304if test x$basic_os != x
1310then1305then
13111306
1312# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just1307# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
1313# set os.1308# set os.
1314case $basic_os in1309case $basic_os in
1315 gnu/linux*)1310 gnu/linux*)
@@ -1753,8 +1748,7 @@ case $os in
1753 | skyos* | haiku* | rdos* | toppers* | drops* | es* \1748 | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1754 | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \1749 | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1755 | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \1750 | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1756 | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \1751 | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
1757 | fiwix* )
1758 ;;1752 ;;
1759 # This one is extra strict with allowed versions1753 # This one is extra strict with allowed versions
1760 sco3.2v2 | sco3.2v[4-9]* | sco5v6*)1754 sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
diff --git a/configure b/configure
index 44d422f..8484a51 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
1#! /bin/sh1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles.2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.71 for OpenVPN 2.6.9.3# Generated by GNU Autoconf 2.71 for OpenVPN 2.6.10.
4#4#
5# Report bugs to <openvpn-users@lists.sourceforge.net>.5# Report bugs to <openvpn-users@lists.sourceforge.net>.
6#6#
@@ -621,8 +621,8 @@ MAKEFLAGS=
621# Identity of this package.621# Identity of this package.
622PACKAGE_NAME='OpenVPN'622PACKAGE_NAME='OpenVPN'
623PACKAGE_TARNAME='openvpn'623PACKAGE_TARNAME='openvpn'
624PACKAGE_VERSION='2.6.9'624PACKAGE_VERSION='2.6.10'
625PACKAGE_STRING='OpenVPN 2.6.9'625PACKAGE_STRING='OpenVPN 2.6.10'
626PACKAGE_BUGREPORT='openvpn-users@lists.sourceforge.net'626PACKAGE_BUGREPORT='openvpn-users@lists.sourceforge.net'
627PACKAGE_URL=''627PACKAGE_URL=''
628628
@@ -747,6 +747,7 @@ MANIFEST_TOOL
747RANLIB747RANLIB
748ac_ct_AR748ac_ct_AR
749AR749AR
750FILECMD
750NM751NM
751ac_ct_DUMPBIN752ac_ct_DUMPBIN
752DUMPBIN753DUMPBIN
@@ -1522,7 +1523,7 @@ if test "$ac_init_help" = "long"; then
1522 # Omit some internal or obsolete options to make the list less imposing.1523 # Omit some internal or obsolete options to make the list less imposing.
1523 # This message is too long to be a string in the A/UX 3.1 sh.1524 # This message is too long to be a string in the A/UX 3.1 sh.
1524 cat <<_ACEOF1525 cat <<_ACEOF
1525\`configure' configures OpenVPN 2.6.9 to adapt to many kinds of systems.1526\`configure' configures OpenVPN 2.6.10 to adapt to many kinds of systems.
15261527
1527Usage: $0 [OPTION]... [VAR=VALUE]...1528Usage: $0 [OPTION]... [VAR=VALUE]...
15281529
@@ -1593,7 +1594,7 @@ fi
15931594
1594if test -n "$ac_init_help"; then1595if test -n "$ac_init_help"; then
1595 case $ac_init_help in1596 case $ac_init_help in
1596 short | recursive ) echo "Configuration of OpenVPN 2.6.9:";;1597 short | recursive ) echo "Configuration of OpenVPN 2.6.10:";;
1597 esac1598 esac
1598 cat <<\_ACEOF1599 cat <<\_ACEOF
15991600
@@ -1830,7 +1831,7 @@ fi
1830test -n "$ac_init_help" && exit $ac_status1831test -n "$ac_init_help" && exit $ac_status
1831if $ac_init_version; then1832if $ac_init_version; then
1832 cat <<\_ACEOF1833 cat <<\_ACEOF
1833OpenVPN configure 2.6.91834OpenVPN configure 2.6.10
1834generated by GNU Autoconf 2.711835generated by GNU Autoconf 2.71
18351836
1836Copyright (C) 2021 Free Software Foundation, Inc.1837Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2487,7 +2488,7 @@ cat >config.log <<_ACEOF
2487This file contains any messages produced by compilers while2488This file contains any messages produced by compilers while
2488running configure, to aid debugging if configure makes a mistake.2489running configure, to aid debugging if configure makes a mistake.
24892490
2490It was created by OpenVPN $as_me 2.6.9, which was2491It was created by OpenVPN $as_me 2.6.10, which was
2491generated by GNU Autoconf 2.71. Invocation command line was2492generated by GNU Autoconf 2.71. Invocation command line was
24922493
2493 $ $0$ac_configure_args_raw2494 $ $0$ac_configure_args_raw
@@ -3273,7 +3274,7 @@ OPENVPN_VERSION_MAJOR=2
32733274
3274OPENVPN_VERSION_MINOR=63275OPENVPN_VERSION_MINOR=6
32753276
3276OPENVPN_VERSION_PATCH=.93277OPENVPN_VERSION_PATCH=.10
32773278
32783279
3279printf "%s\n" "#define OPENVPN_VERSION_MAJOR 2" >>confdefs.h3280printf "%s\n" "#define OPENVPN_VERSION_MAJOR 2" >>confdefs.h
@@ -3282,7 +3283,7 @@ printf "%s\n" "#define OPENVPN_VERSION_MAJOR 2" >>confdefs.h
3282printf "%s\n" "#define OPENVPN_VERSION_MINOR 6" >>confdefs.h3283printf "%s\n" "#define OPENVPN_VERSION_MINOR 6" >>confdefs.h
32833284
32843285
3285printf "%s\n" "#define OPENVPN_VERSION_PATCH \".9\"" >>confdefs.h3286printf "%s\n" "#define OPENVPN_VERSION_PATCH \".10\"" >>confdefs.h
32863287
32873288
32883289
@@ -3811,7 +3812,7 @@ fi
38113812
3812# Define the identity of the package.3813# Define the identity of the package.
3813 PACKAGE='openvpn'3814 PACKAGE='openvpn'
3814 VERSION='2.6.9'3815 VERSION='2.6.10'
38153816
38163817
3817printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h3818printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -6712,8 +6713,8 @@ esac
67126713
67136714
67146715
6715macro_version='2.4.6'6716macro_version='2.4.7'
6716macro_revision='2.4.6'6717macro_revision='2.4.7'
67176718
67186719
67196720
@@ -7266,13 +7267,13 @@ else
7266 mingw*) lt_bad_file=conftest.nm/nofile ;;7267 mingw*) lt_bad_file=conftest.nm/nofile ;;
7267 *) lt_bad_file=/dev/null ;;7268 *) lt_bad_file=/dev/null ;;
7268 esac7269 esac
7269 case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in7270 case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
7270 *$lt_bad_file* | *'Invalid file or object type'*)7271 *$lt_bad_file* | *'Invalid file or object type'*)
7271 lt_cv_path_NM="$tmp_nm -B"7272 lt_cv_path_NM="$tmp_nm -B"
7272 break 27273 break 2
7273 ;;7274 ;;
7274 *)7275 *)
7275 case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in7276 case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
7276 */dev/null*)7277 */dev/null*)
7277 lt_cv_path_NM="$tmp_nm -p"7278 lt_cv_path_NM="$tmp_nm -p"
7278 break 27279 break 2
@@ -7410,7 +7411,7 @@ esac
7410 fi7411 fi
7411fi7412fi
74127413
7413 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in7414 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
7414 *COFF*)7415 *COFF*)
7415 DUMPBIN="$DUMPBIN -symbols -headers"7416 DUMPBIN="$DUMPBIN -symbols -headers"
7416 ;;7417 ;;
@@ -7503,7 +7504,7 @@ else $as_nop
7503 lt_cv_sys_max_cmd_len=8192;7504 lt_cv_sys_max_cmd_len=8192;
7504 ;;7505 ;;
75057506
7506 bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)7507 bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
7507 # This has been around since 386BSD, at least. Likely further.7508 # This has been around since 386BSD, at least. Likely further.
7508 if test -x /sbin/sysctl; then7509 if test -x /sbin/sysctl; then
7509 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`7510 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -7546,7 +7547,7 @@ else $as_nop
7546 sysv5* | sco5v6* | sysv4.2uw2*)7547 sysv5* | sco5v6* | sysv4.2uw2*)
7547 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`7548 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
7548 if test -n "$kargmax"; then7549 if test -n "$kargmax"; then
7549 lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`7550 lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`
7550 else7551 else
7551 lt_cv_sys_max_cmd_len=327687552 lt_cv_sys_max_cmd_len=32768
7552 fi7553 fi
@@ -7752,6 +7753,114 @@ esac
77527753
77537754
7754if test -n "$ac_tool_prefix"; then7755if test -n "$ac_tool_prefix"; then
7756 # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.
7757set dummy ${ac_tool_prefix}file; ac_word=$2
7758{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7759printf %s "checking for $ac_word... " >&6; }
7760if test ${ac_cv_prog_FILECMD+y}
7761then :
7762 printf %s "(cached) " >&6
7763else $as_nop
7764 if test -n "$FILECMD"; then
7765 ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
7766else
7767as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7768for as_dir in $PATH
7769do
7770 IFS=$as_save_IFS
7771 case $as_dir in #(((
7772 '') as_dir=./ ;;
7773 */) ;;
7774 *) as_dir=$as_dir/ ;;
7775 esac
7776 for ac_exec_ext in '' $ac_executable_extensions; do
7777 if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
7778 ac_cv_prog_FILECMD="${ac_tool_prefix}file"
7779 printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
7780 break 2
7781 fi
7782done
7783 done
7784IFS=$as_save_IFS
7785
7786fi
7787fi
7788FILECMD=$ac_cv_prog_FILECMD
7789if test -n "$FILECMD"; then
7790 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
7791printf "%s\n" "$FILECMD" >&6; }
7792else
7793 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
7794printf "%s\n" "no" >&6; }
7795fi
7796
7797
7798fi
7799if test -z "$ac_cv_prog_FILECMD"; then
7800 ac_ct_FILECMD=$FILECMD
7801 # Extract the first word of "file", so it can be a program name with args.
7802set dummy file; ac_word=$2
7803{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7804printf %s "checking for $ac_word... " >&6; }
7805if test ${ac_cv_prog_ac_ct_FILECMD+y}
7806then :
7807 printf %s "(cached) " >&6
7808else $as_nop
7809 if test -n "$ac_ct_FILECMD"; then
7810 ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.
7811else
7812as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7813for as_dir in $PATH
7814do
7815 IFS=$as_save_IFS
7816 case $as_dir in #(((
7817 '') as_dir=./ ;;
7818 */) ;;
7819 *) as_dir=$as_dir/ ;;
7820 esac
7821 for ac_exec_ext in '' $ac_executable_extensions; do
7822 if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
7823 ac_cv_prog_ac_ct_FILECMD="file"
7824 printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
7825 break 2
7826 fi
7827done
7828 done
7829IFS=$as_save_IFS
7830
7831fi
7832fi
7833ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD
7834if test -n "$ac_ct_FILECMD"; then
7835 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5
7836printf "%s\n" "$ac_ct_FILECMD" >&6; }
7837else
7838 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
7839printf "%s\n" "no" >&6; }
7840fi
7841
7842 if test "x$ac_ct_FILECMD" = x; then
7843 FILECMD=":"
7844 else
7845 case $cross_compiling:$ac_tool_warned in
7846yes:)
7847{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
7848printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
7849ac_tool_warned=yes ;;
7850esac
7851 FILECMD=$ac_ct_FILECMD
7852 fi
7853else
7854 FILECMD="$ac_cv_prog_FILECMD"
7855fi
7856
7857
7858
7859
7860
7861
7862
7863if test -n "$ac_tool_prefix"; then
7755 # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.7864 # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
7756set dummy ${ac_tool_prefix}objdump; ac_word=$27865set dummy ${ac_tool_prefix}objdump; ac_word=$2
7757{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&57866{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -7891,7 +8000,7 @@ beos*)
78918000
7892bsdi[45]*)8001bsdi[45]*)
7893 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'8002 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
7894 lt_cv_file_magic_cmd='/usr/bin/file -L'8003 lt_cv_file_magic_cmd='$FILECMD -L'
7895 lt_cv_file_magic_test_file=/shlib/libc.so8004 lt_cv_file_magic_test_file=/shlib/libc.so
7896 ;;8005 ;;
78978006
@@ -7925,14 +8034,14 @@ darwin* | rhapsody*)
7925 lt_cv_deplibs_check_method=pass_all8034 lt_cv_deplibs_check_method=pass_all
7926 ;;8035 ;;
79278036
7928freebsd* | dragonfly*)8037freebsd* | dragonfly* | midnightbsd*)
7929 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then8038 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
7930 case $host_cpu in8039 case $host_cpu in
7931 i*86 )8040 i*86 )
7932 # Not sure whether the presence of OpenBSD here was a mistake.8041 # Not sure whether the presence of OpenBSD here was a mistake.
7933 # Let's accept both of them until this is cleared up.8042 # Let's accept both of them until this is cleared up.
7934 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'8043 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
7935 lt_cv_file_magic_cmd=/usr/bin/file8044 lt_cv_file_magic_cmd=$FILECMD
7936 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`8045 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
7937 ;;8046 ;;
7938 esac8047 esac
@@ -7946,7 +8055,7 @@ haiku*)
7946 ;;8055 ;;
79478056
7948hpux10.20* | hpux11*)8057hpux10.20* | hpux11*)
7949 lt_cv_file_magic_cmd=/usr/bin/file8058 lt_cv_file_magic_cmd=$FILECMD
7950 case $host_cpu in8059 case $host_cpu in
7951 ia64*)8060 ia64*)
7952 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'8061 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
@@ -7983,7 +8092,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
7983 lt_cv_deplibs_check_method=pass_all8092 lt_cv_deplibs_check_method=pass_all
7984 ;;8093 ;;
79858094
7986netbsd* | netbsdelf*-gnu)8095netbsd*)
7987 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then8096 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
7988 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'8097 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
7989 else8098 else
@@ -7993,7 +8102,7 @@ netbsd* | netbsdelf*-gnu)
79938102
7994newos6*)8103newos6*)
7995 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'8104 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
7996 lt_cv_file_magic_cmd=/usr/bin/file8105 lt_cv_file_magic_cmd=$FILECMD
7997 lt_cv_file_magic_test_file=/usr/lib/libnls.so8106 lt_cv_file_magic_test_file=/usr/lib/libnls.so
7998 ;;8107 ;;
79998108
@@ -8363,13 +8472,29 @@ esac
8363fi8472fi
83648473
8365: ${AR=ar}8474: ${AR=ar}
8366: ${AR_FLAGS=cr}
83678475
83688476
83698477
83708478
83718479
83728480
8481# Use ARFLAGS variable as AR's operation code to sync the variable naming with
8482# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
8483# higher priority because thats what people were doing historically (setting
8484# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
8485# variable obsoleted/removed.
8486
8487test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
8488lt_ar_flags=$AR_FLAGS
8489
8490
8491
8492
8493
8494
8495# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
8496# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
8497
83738498
83748499
83758500
@@ -8786,7 +8911,7 @@ esac
87868911
8787if test "$lt_cv_nm_interface" = "MS dumpbin"; then8912if test "$lt_cv_nm_interface" = "MS dumpbin"; then
8788 # Gets list of data symbols to import.8913 # Gets list of data symbols to import.
8789 lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"8914 lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
8790 # Adjust the below global symbol transforms to fixup imported variables.8915 # Adjust the below global symbol transforms to fixup imported variables.
8791 lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"8916 lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
8792 lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"8917 lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@@ -8804,20 +8929,20 @@ fi
8804# Transform an extracted symbol line into a proper C declaration.8929# Transform an extracted symbol line into a proper C declaration.
8805# Some systems (esp. on ia64) link data and code symbols differently,8930# Some systems (esp. on ia64) link data and code symbols differently,
8806# so use this general approach.8931# so use this general approach.
8807lt_cv_sys_global_symbol_to_cdecl="sed -n"\8932lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
8808$lt_cdecl_hook\8933$lt_cdecl_hook\
8809" -e 's/^T .* \(.*\)$/extern int \1();/p'"\8934" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
8810" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"8935" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
88118936
8812# Transform an extracted symbol line into symbol name and symbol address8937# Transform an extracted symbol line into symbol name and symbol address
8813lt_cv_sys_global_symbol_to_c_name_address="sed -n"\8938lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
8814$lt_c_name_hook\8939$lt_c_name_hook\
8815" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\8940" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
8816" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"8941" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
88178942
8818# Transform an extracted symbol line into symbol name with lib prefix and8943# Transform an extracted symbol line into symbol name with lib prefix and
8819# symbol address.8944# symbol address.
8820lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\8945lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
8821$lt_c_name_lib_hook\8946$lt_c_name_lib_hook\
8822" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\8947" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
8823" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\8948" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@@ -8841,7 +8966,7 @@ for ac_symprfx in "" "_"; do
8841 if test "$lt_cv_nm_interface" = "MS dumpbin"; then8966 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
8842 # Fake it for dumpbin and say T for any non-static function,8967 # Fake it for dumpbin and say T for any non-static function,
8843 # D for any global variable and I for any imported variable.8968 # D for any global variable and I for any imported variable.
8844 # Also find C++ and __fastcall symbols from MSVC++,8969 # Also find C++ and __fastcall symbols from MSVC++ or ICC,
8845 # which start with @ or ?.8970 # which start with @ or ?.
8846 lt_cv_sys_global_symbol_pipe="$AWK '"\8971 lt_cv_sys_global_symbol_pipe="$AWK '"\
8847" {last_section=section; section=\$ 3};"\8972" {last_section=section; section=\$ 3};"\
@@ -8859,9 +8984,9 @@ for ac_symprfx in "" "_"; do
8859" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\8984" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
8860" ' prfx=^$ac_symprfx"8985" ' prfx=^$ac_symprfx"
8861 else8986 else
8862 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"8987 lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
8863 fi8988 fi
8864 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"8989 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
88658990
8866 # Check to see that the pipe works correctly.8991 # Check to see that the pipe works correctly.
8867 pipe_works=no8992 pipe_works=no
@@ -8887,8 +9012,11 @@ _LT_EOF
8887 test $ac_status = 0; }; then9012 test $ac_status = 0; }; then
8888 # Now try to grab the symbols.9013 # Now try to grab the symbols.
8889 nlist=conftest.nm9014 nlist=conftest.nm
8890 $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&59015 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
8891 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then9016 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
9017 ac_status=$?
9018 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9019 test $ac_status = 0; } && test -s "$nlist"; then
8892 # Try sorting and uniquifying the output.9020 # Try sorting and uniquifying the output.
8893 if sort "$nlist" | uniq > "$nlist"T; then9021 if sort "$nlist" | uniq > "$nlist"T; then
8894 mv -f "$nlist"T "$nlist"9022 mv -f "$nlist"T "$nlist"
@@ -9061,7 +9189,7 @@ case $with_sysroot in #(
9061 fi9189 fi
9062 ;; #(9190 ;; #(
9063 /*)9191 /*)
9064 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`9192 lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
9065 ;; #(9193 ;; #(
9066 no|'')9194 no|'')
9067 ;; #(9195 ;; #(
@@ -9186,7 +9314,7 @@ ia64-*-hpux*)
9186 ac_status=$?9314 ac_status=$?
9187 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&59315 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9188 test $ac_status = 0; }; then9316 test $ac_status = 0; }; then
9189 case `/usr/bin/file conftest.$ac_objext` in9317 case `$FILECMD conftest.$ac_objext` in
9190 *ELF-32*)9318 *ELF-32*)
9191 HPUX_IA64_MODE=329319 HPUX_IA64_MODE=32
9192 ;;9320 ;;
@@ -9207,7 +9335,7 @@ ia64-*-hpux*)
9207 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&59335 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9208 test $ac_status = 0; }; then9336 test $ac_status = 0; }; then
9209 if test yes = "$lt_cv_prog_gnu_ld"; then9337 if test yes = "$lt_cv_prog_gnu_ld"; then
9210 case `/usr/bin/file conftest.$ac_objext` in9338 case `$FILECMD conftest.$ac_objext` in
9211 *32-bit*)9339 *32-bit*)
9212 LD="${LD-ld} -melf32bsmip"9340 LD="${LD-ld} -melf32bsmip"
9213 ;;9341 ;;
@@ -9219,7 +9347,7 @@ ia64-*-hpux*)
9219 ;;9347 ;;
9220 esac9348 esac
9221 else9349 else
9222 case `/usr/bin/file conftest.$ac_objext` in9350 case `$FILECMD conftest.$ac_objext` in
9223 *32-bit*)9351 *32-bit*)
9224 LD="${LD-ld} -32"9352 LD="${LD-ld} -32"
9225 ;;9353 ;;
@@ -9245,7 +9373,7 @@ mips64*-*linux*)
9245 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&59373 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9246 test $ac_status = 0; }; then9374 test $ac_status = 0; }; then
9247 emul=elf9375 emul=elf
9248 case `/usr/bin/file conftest.$ac_objext` in9376 case `$FILECMD conftest.$ac_objext` in
9249 *32-bit*)9377 *32-bit*)
9250 emul="${emul}32"9378 emul="${emul}32"
9251 ;;9379 ;;
@@ -9253,7 +9381,7 @@ mips64*-*linux*)
9253 emul="${emul}64"9381 emul="${emul}64"
9254 ;;9382 ;;
9255 esac9383 esac
9256 case `/usr/bin/file conftest.$ac_objext` in9384 case `$FILECMD conftest.$ac_objext` in
9257 *MSB*)9385 *MSB*)
9258 emul="${emul}btsmip"9386 emul="${emul}btsmip"
9259 ;;9387 ;;
@@ -9261,7 +9389,7 @@ mips64*-*linux*)
9261 emul="${emul}ltsmip"9389 emul="${emul}ltsmip"
9262 ;;9390 ;;
9263 esac9391 esac
9264 case `/usr/bin/file conftest.$ac_objext` in9392 case `$FILECMD conftest.$ac_objext` in
9265 *N32*)9393 *N32*)
9266 emul="${emul}n32"9394 emul="${emul}n32"
9267 ;;9395 ;;
@@ -9285,14 +9413,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
9285 ac_status=$?9413 ac_status=$?
9286 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&59414 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9287 test $ac_status = 0; }; then9415 test $ac_status = 0; }; then
9288 case `/usr/bin/file conftest.o` in9416 case `$FILECMD conftest.o` in
9289 *32-bit*)9417 *32-bit*)
9290 case $host in9418 case $host in
9291 x86_64-*kfreebsd*-gnu)9419 x86_64-*kfreebsd*-gnu)
9292 LD="${LD-ld} -m elf_i386_fbsd"9420 LD="${LD-ld} -m elf_i386_fbsd"
9293 ;;9421 ;;
9294 x86_64-*linux*)9422 x86_64-*linux*)
9295 case `/usr/bin/file conftest.o` in9423 case `$FILECMD conftest.o` in
9296 *x86-64*)9424 *x86-64*)
9297 LD="${LD-ld} -m elf32_x86_64"9425 LD="${LD-ld} -m elf32_x86_64"
9298 ;;9426 ;;
@@ -9400,7 +9528,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
9400 ac_status=$?9528 ac_status=$?
9401 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&59529 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9402 test $ac_status = 0; }; then9530 test $ac_status = 0; }; then
9403 case `/usr/bin/file conftest.o` in9531 case `$FILECMD conftest.o` in
9404 *64-bit*)9532 *64-bit*)
9405 case $lt_cv_prog_gnu_ld in9533 case $lt_cv_prog_gnu_ld in
9406 yes*)9534 yes*)
@@ -10183,8 +10311,8 @@ int forced_loaded() { return 2;}
10183_LT_EOF10311_LT_EOF
10184 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&510312 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
10185 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&510313 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
10186 echo "$AR cr libconftest.a conftest.o" >&510314 echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
10187 $AR cr libconftest.a conftest.o 2>&510315 $AR $AR_FLAGS libconftest.a conftest.o 2>&5
10188 echo "$RANLIB libconftest.a" >&510316 echo "$RANLIB libconftest.a" >&5
10189 $RANLIB libconftest.a 2>&510317 $RANLIB libconftest.a 2>&5
10190 cat > conftest.c << _LT_EOF10318 cat > conftest.c << _LT_EOF
@@ -10211,17 +10339,12 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; }
10211 _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;10339 _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
10212 darwin1.*)10340 darwin1.*)
10213 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;10341 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10214 darwin*) # darwin 5.x on10342 darwin*)
10215 # if running on 10.5 or later, the deployment target defaults10343 case $MACOSX_DEPLOYMENT_TARGET,$host in
10216 # to the OS version, if on x86, and 10.4, the deployment10344 10.[012],*|,*powerpc*-darwin[5-8]*)
10217 # target defaults to 10.4. Don't you love it?10345 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10218 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in10346 *)
10219 10.0,*86*-darwin8*|10.0,*-darwin[912]*)10347 _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10220 _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10221 10.[012][,.]*)
10222 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10223 10.*|11.*)
10224 _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10225 esac10348 esac
10226 ;;10349 ;;
10227 esac10350 esac
@@ -10908,8 +11031,8 @@ esac
10908ofile=libtool11031ofile=libtool
10909can_build_shared=yes11032can_build_shared=yes
1091011033
10911# All known linkers require a '.a' archive for static linking (except MSVC,11034# All known linkers require a '.a' archive for static linking (except MSVC and
10912# which needs '.lib').11035# ICC, which need '.lib').
10913libext=a11036libext=a
1091411037
10915with_gnu_ld=$lt_cv_prog_gnu_ld11038with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -11377,12 +11500,6 @@ lt_prog_compiler_static=
11377 lt_prog_compiler_pic='-KPIC'11500 lt_prog_compiler_pic='-KPIC'
11378 lt_prog_compiler_static='-static'11501 lt_prog_compiler_static='-static'
11379 ;;11502 ;;
11380 # flang / f18. f95 an alias for gfortran or flang on Debian
11381 flang* | f18* | f95*)
11382 lt_prog_compiler_wl='-Wl,'
11383 lt_prog_compiler_pic='-fPIC'
11384 lt_prog_compiler_static='-static'
11385 ;;
11386 # icc used to be incompatible with GCC.11503 # icc used to be incompatible with GCC.
11387 # ICC 10 doesn't accept -KPIC any more.11504 # ICC 10 doesn't accept -KPIC any more.
11388 icc* | ifort*)11505 icc* | ifort*)
@@ -11427,7 +11544,7 @@ lt_prog_compiler_static=
11427 lt_prog_compiler_static='-qstaticlink'11544 lt_prog_compiler_static='-qstaticlink'
11428 ;;11545 ;;
11429 *)11546 *)
11430 case `$CC -V 2>&1 | sed 5q` in11547 case `$CC -V 2>&1 | $SED 5q` in
11431 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)11548 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
11432 # Sun Fortran 8.3 passes all unrecognized flags to the linker11549 # Sun Fortran 8.3 passes all unrecognized flags to the linker
11433 lt_prog_compiler_pic='-KPIC'11550 lt_prog_compiler_pic='-KPIC'
@@ -11850,23 +11967,20 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
1185011967
11851 case $host_os in11968 case $host_os in
11852 cygwin* | mingw* | pw32* | cegcc*)11969 cygwin* | mingw* | pw32* | cegcc*)
11853 # FIXME: the MSVC++ port hasn't been tested in a loooong time11970 # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
11854 # When not using gcc, we currently assume that we are using11971 # When not using gcc, we currently assume that we are using
11855 # Microsoft Visual C++.11972 # Microsoft Visual C++ or Intel C++ Compiler.
11856 if test yes != "$GCC"; then11973 if test yes != "$GCC"; then
11857 with_gnu_ld=no11974 with_gnu_ld=no
11858 fi11975 fi
11859 ;;11976 ;;
11860 interix*)11977 interix*)
11861 # we just hope/assume this is gcc and not c89 (= MSVC++)11978 # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
11862 with_gnu_ld=yes11979 with_gnu_ld=yes
11863 ;;11980 ;;
11864 openbsd* | bitrig*)11981 openbsd* | bitrig*)
11865 with_gnu_ld=no11982 with_gnu_ld=no
11866 ;;11983 ;;
11867 linux* | k*bsd*-gnu | gnu*)
11868 link_all_deplibs=no
11869 ;;
11870 esac11984 esac
1187111985
11872 ld_shlibs=yes11986 ld_shlibs=yes
@@ -11913,7 +12027,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
11913 whole_archive_flag_spec=12027 whole_archive_flag_spec=
11914 fi12028 fi
11915 supports_anon_versioning=no12029 supports_anon_versioning=no
11916 case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in12030 case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
11917 *GNU\ gold*) supports_anon_versioning=yes ;;12031 *GNU\ gold*) supports_anon_versioning=yes ;;
11918 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.1112032 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
11919 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...12033 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -12025,6 +12139,7 @@ _LT_EOF
12025 emximp -o $lib $output_objdir/$libname.def'12139 emximp -o $lib $output_objdir/$libname.def'
12026 old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'12140 old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
12027 enable_shared_with_static_runtimes=yes12141 enable_shared_with_static_runtimes=yes
12142 file_list_spec='@'
12028 ;;12143 ;;
1202912144
12030 interix[3-9]*)12145 interix[3-9]*)
@@ -12039,7 +12154,7 @@ _LT_EOF
12039 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link12154 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
12040 # time. Moving up from 0x10000000 also allows more sbrk(2) space.12155 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
12041 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'12156 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
12042 archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'12157 archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
12043 ;;12158 ;;
1204412159
12045 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)12160 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -12082,7 +12197,7 @@ _LT_EOF
12082 compiler_needs_object=yes12197 compiler_needs_object=yes
12083 ;;12198 ;;
12084 esac12199 esac
12085 case `$CC -V 2>&1 | sed 5q` in12200 case `$CC -V 2>&1 | $SED 5q` in
12086 *Sun\ C*) # Sun C 5.912201 *Sun\ C*) # Sun C 5.9
12087 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'12202 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
12088 compiler_needs_object=yes12203 compiler_needs_object=yes
@@ -12094,7 +12209,7 @@ _LT_EOF
1209412209
12095 if test yes = "$supports_anon_versioning"; then12210 if test yes = "$supports_anon_versioning"; then
12096 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~12211 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
12097 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~12212 cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
12098 echo "local: *; };" >> $output_objdir/$libname.ver~12213 echo "local: *; };" >> $output_objdir/$libname.ver~
12099 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'12214 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
12100 fi12215 fi
@@ -12110,7 +12225,7 @@ _LT_EOF
12110 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'12225 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
12111 if test yes = "$supports_anon_versioning"; then12226 if test yes = "$supports_anon_versioning"; then
12112 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~12227 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
12113 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~12228 cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
12114 echo "local: *; };" >> $output_objdir/$libname.ver~12229 echo "local: *; };" >> $output_objdir/$libname.ver~
12115 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'12230 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
12116 fi12231 fi
@@ -12121,7 +12236,7 @@ _LT_EOF
12121 fi12236 fi
12122 ;;12237 ;;
1212312238
12124 netbsd* | netbsdelf*-gnu)12239 netbsd*)
12125 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then12240 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
12126 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'12241 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
12127 wlarc=12242 wlarc=
@@ -12242,7 +12357,7 @@ _LT_EOF
12242 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then12357 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
12243 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'12358 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
12244 else12359 else
12245 export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'12360 export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
12246 fi12361 fi
12247 aix_use_runtimelinking=no12362 aix_use_runtimelinking=no
1224812363
@@ -12513,12 +12628,12 @@ fi
1251312628
12514 cygwin* | mingw* | pw32* | cegcc*)12629 cygwin* | mingw* | pw32* | cegcc*)
12515 # When not using gcc, we currently assume that we are using12630 # When not using gcc, we currently assume that we are using
12516 # Microsoft Visual C++.12631 # Microsoft Visual C++ or Intel C++ Compiler.
12517 # hardcode_libdir_flag_spec is actually meaningless, as there is12632 # hardcode_libdir_flag_spec is actually meaningless, as there is
12518 # no search path for DLLs.12633 # no search path for DLLs.
12519 case $cc_basename in12634 case $cc_basename in
12520 cl*)12635 cl* | icl*)
12521 # Native MSVC12636 # Native MSVC or ICC
12522 hardcode_libdir_flag_spec=' '12637 hardcode_libdir_flag_spec=' '
12523 allow_undefined_flag=unsupported12638 allow_undefined_flag=unsupported
12524 always_export_symbols=yes12639 always_export_symbols=yes
@@ -12559,7 +12674,7 @@ fi
12559 fi'12674 fi'
12560 ;;12675 ;;
12561 *)12676 *)
12562 # Assume MSVC wrapper12677 # Assume MSVC and ICC wrapper
12563 hardcode_libdir_flag_spec=' '12678 hardcode_libdir_flag_spec=' '
12564 allow_undefined_flag=unsupported12679 allow_undefined_flag=unsupported
12565 # Tell ltmain to make .lib files, not .a files.12680 # Tell ltmain to make .lib files, not .a files.
@@ -12600,8 +12715,8 @@ fi
12600 output_verbose_link_cmd=func_echo_all12715 output_verbose_link_cmd=func_echo_all
12601 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"12716 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
12602 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"12717 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
12603 archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"12718 archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
12604 module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"12719 module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
1260512720
12606 else12721 else
12607 ld_shlibs=no12722 ld_shlibs=no
@@ -12635,7 +12750,7 @@ fi
12635 ;;12750 ;;
1263612751
12637 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.12752 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
12638 freebsd* | dragonfly*)12753 freebsd* | dragonfly* | midnightbsd*)
12639 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'12754 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
12640 hardcode_libdir_flag_spec='-R$libdir'12755 hardcode_libdir_flag_spec='-R$libdir'
12641 hardcode_direct=yes12756 hardcode_direct=yes
@@ -12798,7 +12913,6 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
12798 if test yes = "$lt_cv_irix_exported_symbol"; then12913 if test yes = "$lt_cv_irix_exported_symbol"; then
12799 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'12914 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
12800 fi12915 fi
12801 link_all_deplibs=no
12802 else12916 else
12803 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'12917 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
12804 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'12918 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
@@ -12820,7 +12934,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
12820 esac12934 esac
12821 ;;12935 ;;
1282212936
12823 netbsd* | netbsdelf*-gnu)12937 netbsd*)
12824 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then12938 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
12825 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out12939 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
12826 else12940 else
@@ -12887,6 +13001,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
12887 emximp -o $lib $output_objdir/$libname.def'13001 emximp -o $lib $output_objdir/$libname.def'
12888 old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'13002 old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
12889 enable_shared_with_static_runtimes=yes13003 enable_shared_with_static_runtimes=yes
13004 file_list_spec='@'
12890 ;;13005 ;;
1289113006
12892 osf3*)13007 osf3*)
@@ -13579,7 +13694,7 @@ cygwin* | mingw* | pw32* | cegcc*)
13579 case $host_os in13694 case $host_os in
13580 cygwin*)13695 cygwin*)
13581 # Cygwin DLLs use 'cyg' prefix rather than 'lib'13696 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
13582 soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'13697 soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
1358313698
13584 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"13699 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
13585 ;;13700 ;;
@@ -13589,14 +13704,14 @@ cygwin* | mingw* | pw32* | cegcc*)
13589 ;;13704 ;;
13590 pw32*)13705 pw32*)
13591 # pw32 DLLs use 'pw' prefix rather than 'lib'13706 # pw32 DLLs use 'pw' prefix rather than 'lib'
13592 library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'13707 library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
13593 ;;13708 ;;
13594 esac13709 esac
13595 dynamic_linker='Win32 ld.exe'13710 dynamic_linker='Win32 ld.exe'
13596 ;;13711 ;;
1359713712
13598 *,cl*)13713 *,cl* | *,icl*)
13599 # Native MSVC13714 # Native MSVC or ICC
13600 libname_spec='$name'13715 libname_spec='$name'
13601 soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'13716 soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
13602 library_names_spec='$libname.dll.lib'13717 library_names_spec='$libname.dll.lib'
@@ -13615,7 +13730,7 @@ cygwin* | mingw* | pw32* | cegcc*)
13615 done13730 done
13616 IFS=$lt_save_ifs13731 IFS=$lt_save_ifs
13617 # Convert to MSYS style.13732 # Convert to MSYS style.
13618 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`13733 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
13619 ;;13734 ;;
13620 cygwin*)13735 cygwin*)
13621 # Convert to unix form, then to dos form, then back to unix form13736 # Convert to unix form, then to dos form, then back to unix form
@@ -13652,7 +13767,7 @@ cygwin* | mingw* | pw32* | cegcc*)
13652 ;;13767 ;;
1365313768
13654 *)13769 *)
13655 # Assume MSVC wrapper13770 # Assume MSVC and ICC wrapper
13656 library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'13771 library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
13657 dynamic_linker='Win32 ld.exe'13772 dynamic_linker='Win32 ld.exe'
13658 ;;13773 ;;
@@ -13685,7 +13800,7 @@ dgux*)
13685 shlibpath_var=LD_LIBRARY_PATH13800 shlibpath_var=LD_LIBRARY_PATH
13686 ;;13801 ;;
1368713802
13688freebsd* | dragonfly*)13803freebsd* | dragonfly* | midnightbsd*)
13689 # DragonFly does not have aout. When/if they implement a new13804 # DragonFly does not have aout. When/if they implement a new
13690 # versioning mechanism, adjust this.13805 # versioning mechanism, adjust this.
13691 if test -x /usr/bin/objformat; then13806 if test -x /usr/bin/objformat; then
@@ -13939,18 +14054,6 @@ fi
13939 dynamic_linker='GNU/Linux ld.so'14054 dynamic_linker='GNU/Linux ld.so'
13940 ;;14055 ;;
1394114056
13942netbsdelf*-gnu)
13943 version_type=linux
13944 need_lib_prefix=no
13945 need_version=no
13946 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
13947 soname_spec='${libname}${release}${shared_ext}$major'
13948 shlibpath_var=LD_LIBRARY_PATH
13949 shlibpath_overrides_runpath=no
13950 hardcode_into_libs=yes
13951 dynamic_linker='NetBSD ld.elf_so'
13952 ;;
13953
13954netbsd*)14057netbsd*)
13955 version_type=sunos14058 version_type=sunos
13956 need_lib_prefix=no14059 need_lib_prefix=no
@@ -14850,30 +14953,41 @@ striplib=
14850old_striplib=14953old_striplib=
14851{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&514954{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
14852printf %s "checking whether stripping libraries is possible... " >&6; }14955printf %s "checking whether stripping libraries is possible... " >&6; }
14853if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then14956if test -z "$STRIP"; then
14854 test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"14957 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
14855 test -z "$striplib" && striplib="$STRIP --strip-unneeded"14958printf "%s\n" "no" >&6; }
14856 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14857printf "%s\n" "yes" >&6; }
14858else14959else
14859# FIXME - insert some real tests, host_os isn't really good enough14960 if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
14860 case $host_os in14961 old_striplib="$STRIP --strip-debug"
14861 darwin*)14962 striplib="$STRIP --strip-unneeded"
14862 if test -n "$STRIP"; then14963 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14964printf "%s\n" "yes" >&6; }
14965 else
14966 case $host_os in
14967 darwin*)
14968 # FIXME - insert some real tests, host_os isn't really good enough
14863 striplib="$STRIP -x"14969 striplib="$STRIP -x"
14864 old_striplib="$STRIP -S"14970 old_striplib="$STRIP -S"
14865 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&514971 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14866printf "%s\n" "yes" >&6; }14972printf "%s\n" "yes" >&6; }
14867 else14973 ;;
14868 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&514974 freebsd*)
14975 if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
14976 old_striplib="$STRIP --strip-debug"
14977 striplib="$STRIP --strip-unneeded"
14978 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14979printf "%s\n" "yes" >&6; }
14980 else
14981 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
14869printf "%s\n" "no" >&6; }14982printf "%s\n" "no" >&6; }
14870 fi14983 fi
14871 ;;14984 ;;
14872 *)14985 *)
14873 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&514986 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
14874printf "%s\n" "no" >&6; }14987printf "%s\n" "no" >&6; }
14875 ;;14988 ;;
14876 esac14989 esac
14990 fi
14877fi14991fi
1487814992
1487914993
@@ -20103,7 +20217,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
20103# report actual input values of CONFIG_FILES etc. instead of their20217# report actual input values of CONFIG_FILES etc. instead of their
20104# values after options handling.20218# values after options handling.
20105ac_log="20219ac_log="
20106This file was extended by OpenVPN $as_me 2.6.9, which was20220This file was extended by OpenVPN $as_me 2.6.10, which was
20107generated by GNU Autoconf 2.71. Invocation command line was20221generated by GNU Autoconf 2.71. Invocation command line was
2010820222
20109 CONFIG_FILES = $CONFIG_FILES20223 CONFIG_FILES = $CONFIG_FILES
@@ -20171,7 +20285,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
20171cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=120285cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
20172ac_cs_config='$ac_cs_config_escaped'20286ac_cs_config='$ac_cs_config_escaped'
20173ac_cs_version="\\20287ac_cs_version="\\
20174OpenVPN config.status 2.6.920288OpenVPN config.status 2.6.10
20175configured by $0, generated by GNU Autoconf 2.71,20289configured by $0, generated by GNU Autoconf 2.71,
20176 with options \\"\$ac_cs_config\\"20290 with options \\"\$ac_cs_config\\"
2017720291
@@ -20337,12 +20451,14 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
20337lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'20451lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
20338reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'20452reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
20339reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'20453reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
20454FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
20340deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'20455deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
20341file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'20456file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
20342file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'20457file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
20343want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'20458want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
20344sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'20459sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
20345AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'20460AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
20461lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
20346AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'20462AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
20347archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'20463archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
20348STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'20464STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
@@ -20508,13 +20624,13 @@ LN_S \
20508lt_SP2NL \20624lt_SP2NL \
20509lt_NL2SP \20625lt_NL2SP \
20510reload_flag \20626reload_flag \
20627FILECMD \
20511deplibs_check_method \20628deplibs_check_method \
20512file_magic_cmd \20629file_magic_cmd \
20513file_magic_glob \20630file_magic_glob \
20514want_nocaseglob \20631want_nocaseglob \
20515sharedlib_from_linklib_cmd \20632sharedlib_from_linklib_cmd \
20516AR \20633AR \
20517AR_FLAGS \
20518archiver_list_spec \20634archiver_list_spec \
20519STRIP \20635STRIP \
20520RANLIB \20636RANLIB \
@@ -21396,6 +21512,7 @@ See \`config.log' for more details" "$LINENO" 5; }
21396 cat <<_LT_EOF >> "$cfgfile"21512 cat <<_LT_EOF >> "$cfgfile"
21397#! $SHELL21513#! $SHELL
21398# Generated automatically by $as_me ($PACKAGE) $VERSION21514# Generated automatically by $as_me ($PACKAGE) $VERSION
21515# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
21399# NOTE: Changes made to this file will be lost: look at ltmain.sh.21516# NOTE: Changes made to this file will be lost: look at ltmain.sh.
2140021517
21401# Provide generalized library-building support services.21518# Provide generalized library-building support services.
@@ -21524,6 +21641,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
21524# convert \$build files to toolchain format.21641# convert \$build files to toolchain format.
21525to_tool_file_cmd=$lt_cv_to_tool_file_cmd21642to_tool_file_cmd=$lt_cv_to_tool_file_cmd
2152621643
21644# A file(cmd) program that detects file types.
21645FILECMD=$lt_FILECMD
21646
21527# Method to check whether dependent libraries are shared objects.21647# Method to check whether dependent libraries are shared objects.
21528deplibs_check_method=$lt_deplibs_check_method21648deplibs_check_method=$lt_deplibs_check_method
2152921649
@@ -21542,8 +21662,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
21542# The archiver.21662# The archiver.
21543AR=$lt_AR21663AR=$lt_AR
2154421664
21665# Flags to create an archive (by configure).
21666lt_ar_flags=$lt_ar_flags
21667
21545# Flags to create an archive.21668# Flags to create an archive.
21546AR_FLAGS=$lt_AR_FLAGS21669AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
2154721670
21548# How to feed a file listing to the archiver.21671# How to feed a file listing to the archiver.
21549archiver_list_spec=$lt_archiver_list_spec21672archiver_list_spec=$lt_archiver_list_spec
@@ -21919,7 +22042,7 @@ ltmain=$ac_aux_dir/ltmain.sh
21919 # if finds mixed CR/LF and LF-only lines. Since sed operates in22042 # if finds mixed CR/LF and LF-only lines. Since sed operates in
21920 # text mode, it properly converts lines to CR/LF. This bash problem22043 # text mode, it properly converts lines to CR/LF. This bash problem
21921 # is reportedly fixed, but why not run on old versions too?22044 # is reportedly fixed, but why not run on old versions too?
21922 sed '$q' "$ltmain" >> "$cfgfile" \22045 $SED '$q' "$ltmain" >> "$cfgfile" \
21923 || (rm -f "$cfgfile"; exit 1)22046 || (rm -f "$cfgfile"; exit 1)
2192422047
21925 mv -f "$cfgfile" "$ofile" ||22048 mv -f "$cfgfile" "$ofile" ||
diff --git a/configure.ac b/configure.ac
index ca0850b..1619b43 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl session authentication and key exchange,
4dnl packet encryption, packet authentication, and4dnl packet encryption, packet authentication, and
5dnl packet compression.5dnl packet compression.
6dnl6dnl
7dnl Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>7dnl Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
8dnl Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>8dnl Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
9dnl9dnl
10dnl This program is free software; you can redistribute it and/or modify10dnl This program is free software; you can redistribute it and/or modify
diff --git a/contrib/OCSP_check/OCSP_check.sh b/contrib/OCSP_check/OCSP_check.sh
index 2675788..e4fec83 100644
--- a/contrib/OCSP_check/OCSP_check.sh
+++ b/contrib/OCSP_check/OCSP_check.sh
@@ -89,7 +89,7 @@ if [ $check_depth -eq -1 ] || [ $cur_depth -eq $check_depth ]; then
89 #89 #
90 # NOTE: It is needed to check the exit code of OpenSSL explicitly. OpenSSL90 # NOTE: It is needed to check the exit code of OpenSSL explicitly. OpenSSL
91 # can in some circumstances give a "good" result if it could not91 # can in some circumstances give a "good" result if it could not
92 # reach the the OSCP server. In this case, the exit code will indicate92 # reach the OSCP server. In this case, the exit code will indicate
93 # if OpenSSL itself failed or not. If OpenSSL's exit code is not 0,93 # if OpenSSL itself failed or not. If OpenSSL's exit code is not 0,
94 # don't trust the OpenSSL status.94 # don't trust the OpenSSL status.
9595
diff --git a/contrib/cmake/git-version.py b/contrib/cmake/git-version.py
index 4f78ac4..a39cab4 100644
--- a/contrib/cmake/git-version.py
+++ b/contrib/cmake/git-version.py
@@ -5,7 +5,7 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2022-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2022-2024 OpenVPN Inc <sales@openvpn.net>
9# Copyright (C) 2022-2022 Lev Stipakov <lev@lestisoftware.fi>9# Copyright (C) 2022-2022 Lev Stipakov <lev@lestisoftware.fi>
10#10#
11# This program is free software; you can redistribute it and/or modify11# This program is free software; you can redistribute it and/or modify
diff --git a/contrib/cmake/parse-version.m4.py b/contrib/cmake/parse-version.m4.py
index 791d2ec..a41871b 100644
--- a/contrib/cmake/parse-version.m4.py
+++ b/contrib/cmake/parse-version.m4.py
@@ -5,7 +5,7 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2022-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2022-2024 OpenVPN Inc <sales@openvpn.net>
9# Copyright (C) 2022-2022 Lev Stipakov <lev@lestisoftware.fi>9# Copyright (C) 2022-2022 Lev Stipakov <lev@lestisoftware.fi>
10#10#
11# This program is free software; you can redistribute it and/or modify11# This program is free software; you can redistribute it and/or modify
diff --git a/debian/changelog b/debian/changelog
index 300c285..e81c167 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,23 @@
1openvpn (2.6.10-0ubuntu1) oracular; urgency=medium
2
3 * New upstream version 2.6.10 (LP: #2064436)
4 - Updates:
5 + t_client.sh can now run pre-tests and skip a test block if needed.
6 + Remove license warnings about mbedTLS linking.
7 + Update documentation references in systemd unit files.
8 + Remove obsolete tls-*.conf sample files.
9 + document that auth-user-pass may be inlined.
10 - Bug fixes:
11 + Fix checking option consistency for compiled-in compression algorithm
12 support.
13 + Remove obsolete syslog.target in systemd unit files.
14 + Additional Windows bug fixes.
15 - See https://community.openvpn.net/openvpn/wiki/ChangesInOpenvpn26 for
16 additional bug fixes and information.
17 * d/p/systemd.patch: Remove - Fixed upstream
18
19 -- Lena Voytek <lena.voytek@canonical.com> Wed, 01 May 2024 10:02:39 -0700
20
1openvpn (2.6.9-1ubuntu4) noble; urgency=high21openvpn (2.6.9-1ubuntu4) noble; urgency=high
222
3 * No change rebuild against libssl3t64.23 * No change rebuild against libssl3t64.
diff --git a/debian/patches/series b/debian/patches/series
index cd8779c..4dbc853 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,4 +2,3 @@ move_log_dir.patch
2auth-pam_libpam_so_filename.patch2auth-pam_libpam_so_filename.patch
3#debian_nogroup_for_sample_files.patch3#debian_nogroup_for_sample_files.patch
4openvpn-pkcs11warn.patch4openvpn-pkcs11warn.patch
5systemd.patch
diff --git a/debian/patches/systemd.patch b/debian/patches/systemd.patch
6deleted file mode 1006445deleted file mode 100644
index ccbecfd..0000000
--- a/debian/patches/systemd.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1Description: remove syslog.target
2Author: Jörg Frings-Fürst <debian@jff.email>
3Last-Update: 2018-07-29
4---
5This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
6Index: trunk/distro/systemd/openvpn-client@.service.in
7===================================================================
8--- trunk.orig/distro/systemd/openvpn-client@.service.in
9+++ trunk/distro/systemd/openvpn-client@.service.in
10@@ -1,6 +1,6 @@
11 [Unit]
12 Description=OpenVPN tunnel for %I
13-After=syslog.target network-online.target
14+After=network-online.target
15 Wants=network-online.target
16 Documentation=man:openvpn(8)
17 Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
18Index: trunk/distro/systemd/openvpn-server@.service.in
19===================================================================
20--- trunk.orig/distro/systemd/openvpn-server@.service.in
21+++ trunk/distro/systemd/openvpn-server@.service.in
22@@ -1,6 +1,6 @@
23 [Unit]
24 Description=OpenVPN service for %I
25-After=syslog.target network-online.target
26+After=network-online.target
27 Wants=network-online.target
28 Documentation=man:openvpn(8)
29 Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
diff --git a/distro/Makefile.am b/distro/Makefile.am
index 177dcee..7a588da 100644
--- a/distro/Makefile.am
+++ b/distro/Makefile.am
@@ -5,7 +5,7 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>9# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
10#10#
1111
diff --git a/distro/Makefile.in b/distro/Makefile.in
index 8c999ca..adafe36 100644
--- a/distro/Makefile.in
+++ b/distro/Makefile.in
@@ -21,7 +21,7 @@
21# packet encryption, packet authentication, and21# packet encryption, packet authentication, and
22# packet compression.22# packet compression.
23#23#
24# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>24# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
25# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>25# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
26#26#
27VPATH = @srcdir@27VPATH = @srcdir@
@@ -227,6 +227,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
227ETAGS = @ETAGS@227ETAGS = @ETAGS@
228EXEEXT = @EXEEXT@228EXEEXT = @EXEEXT@
229FGREP = @FGREP@229FGREP = @FGREP@
230FILECMD = @FILECMD@
230GIT = @GIT@231GIT = @GIT@
231GREP = @GREP@232GREP = @GREP@
232IFCONFIG = @IFCONFIG@233IFCONFIG = @IFCONFIG@
diff --git a/distro/systemd/Makefile.am b/distro/systemd/Makefile.am
index 7e8f475..8503a0c 100644
--- a/distro/systemd/Makefile.am
+++ b/distro/systemd/Makefile.am
@@ -5,11 +5,14 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2017-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2017-2024 OpenVPN Inc <sales@openvpn.net>
9#9#
1010
11%.service: %.service.in Makefile11%.service: %.service.in Makefile
12 $(AM_V_GEN)sed -e 's|\@sbindir\@|$(sbindir)|' \12 $(AM_V_GEN)sed \
13 -e 's|\@OPENVPN_VERSION_MAJOR\@|$(OPENVPN_VERSION_MAJOR)|g' \
14 -e 's|\@OPENVPN_VERSION_MINOR\@|$(OPENVPN_VERSION_MINOR)|g' \
15 -e 's|\@sbindir\@|$(sbindir)|g' \
13 $< > $@.tmp && mv $@.tmp $@16 $< > $@.tmp && mv $@.tmp $@
1417
15EXTRA_DIST = \18EXTRA_DIST = \
diff --git a/distro/systemd/Makefile.in b/distro/systemd/Makefile.in
index 90ef2f2..8ecde8c 100644
--- a/distro/systemd/Makefile.in
+++ b/distro/systemd/Makefile.in
@@ -21,7 +21,7 @@
21# packet encryption, packet authentication, and21# packet encryption, packet authentication, and
22# packet compression.22# packet compression.
23#23#
24# Copyright (C) 2017-2023 OpenVPN Inc <sales@openvpn.net>24# Copyright (C) 2017-2024 OpenVPN Inc <sales@openvpn.net>
25#25#
2626
27VPATH = @srcdir@27VPATH = @srcdir@
@@ -201,6 +201,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
201ETAGS = @ETAGS@201ETAGS = @ETAGS@
202EXEEXT = @EXEEXT@202EXEEXT = @EXEEXT@
203FGREP = @FGREP@203FGREP = @FGREP@
204FILECMD = @FILECMD@
204GIT = @GIT@205GIT = @GIT@
205GREP = @GREP@206GREP = @GREP@
206IFCONFIG = @IFCONFIG@207IFCONFIG = @IFCONFIG@
@@ -649,7 +650,10 @@ uninstall-am: uninstall-dist_docDATA uninstall-systemdunitDATA \
649650
650651
651%.service: %.service.in Makefile652%.service: %.service.in Makefile
652 $(AM_V_GEN)sed -e 's|\@sbindir\@|$(sbindir)|' \653 $(AM_V_GEN)sed \
654 -e 's|\@OPENVPN_VERSION_MAJOR\@|$(OPENVPN_VERSION_MAJOR)|g' \
655 -e 's|\@OPENVPN_VERSION_MINOR\@|$(OPENVPN_VERSION_MINOR)|g' \
656 -e 's|\@sbindir\@|$(sbindir)|g' \
653 $< > $@.tmp && mv $@.tmp $@657 $< > $@.tmp && mv $@.tmp $@
654658
655@ENABLE_SYSTEMD_TRUE@install-data-hook:659@ENABLE_SYSTEMD_TRUE@install-data-hook:
diff --git a/distro/systemd/openvpn-client@.service.in b/distro/systemd/openvpn-client@.service.in
index 159fb4d..ae62e8c 100644
--- a/distro/systemd/openvpn-client@.service.in
+++ b/distro/systemd/openvpn-client@.service.in
@@ -1,9 +1,9 @@
1[Unit]1[Unit]
2Description=OpenVPN tunnel for %I2Description=OpenVPN tunnel for %I
3After=syslog.target network-online.target3After=network-online.target
4Wants=network-online.target4Wants=network-online.target
5Documentation=man:openvpn(8)5Documentation=man:openvpn(8)
6Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage6Documentation=https://openvpn.net/community-resources/reference-manual-for-openvpn-@OPENVPN_VERSION_MAJOR@-@OPENVPN_VERSION_MINOR@/
7Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO7Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO
88
9[Service]9[Service]
diff --git a/distro/systemd/openvpn-server@.service.in b/distro/systemd/openvpn-server@.service.in
index 6e8e7d9..5123e07 100644
--- a/distro/systemd/openvpn-server@.service.in
+++ b/distro/systemd/openvpn-server@.service.in
@@ -1,9 +1,9 @@
1[Unit]1[Unit]
2Description=OpenVPN service for %I2Description=OpenVPN service for %I
3After=syslog.target network-online.target3After=network-online.target
4Wants=network-online.target4Wants=network-online.target
5Documentation=man:openvpn(8)5Documentation=man:openvpn(8)
6Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage6Documentation=https://openvpn.net/community-resources/reference-manual-for-openvpn-@OPENVPN_VERSION_MAJOR@-@OPENVPN_VERSION_MINOR@/
7Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO7Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO
88
9[Service]9[Service]
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 087f0ce..634e4ce 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -5,7 +5,7 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>9# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
10#10#
1111
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 874af7d..e09b3cd 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -21,7 +21,7 @@
21# packet encryption, packet authentication, and21# packet encryption, packet authentication, and
22# packet compression.22# packet compression.
23#23#
24# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>24# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
25# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>25# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
26#26#
2727
@@ -290,6 +290,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
290ETAGS = @ETAGS@290ETAGS = @ETAGS@
291EXEEXT = @EXEEXT@291EXEEXT = @EXEEXT@
292FGREP = @FGREP@292FGREP = @FGREP@
293FILECMD = @FILECMD@
293GIT = @GIT@294GIT = @GIT@
294GREP = @GREP@295GREP = @GREP@
295IFCONFIG = @IFCONFIG@296IFCONFIG = @IFCONFIG@
diff --git a/doc/doxygen/Makefile.in b/doc/doxygen/Makefile.in
index f90c632..33d0690 100644
--- a/doc/doxygen/Makefile.in
+++ b/doc/doxygen/Makefile.in
@@ -168,6 +168,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
168ETAGS = @ETAGS@168ETAGS = @ETAGS@
169EXEEXT = @EXEEXT@169EXEEXT = @EXEEXT@
170FGREP = @FGREP@170FGREP = @FGREP@
171FILECMD = @FILECMD@
171GIT = @GIT@172GIT = @GIT@
172GREP = @GREP@173GREP = @GREP@
173IFCONFIG = @IFCONFIG@174IFCONFIG = @IFCONFIG@
diff --git a/doc/man-sections/cipher-negotiation.rst b/doc/man-sections/cipher-negotiation.rst
index 888ffa6..949ff86 100644
--- a/doc/man-sections/cipher-negotiation.rst
+++ b/doc/man-sections/cipher-negotiation.rst
@@ -8,7 +8,7 @@ different backwards compatibility mechanism with older server and clients.
8OpenVPN 2.5 and later behaviour8OpenVPN 2.5 and later behaviour
9--------------------------------9--------------------------------
10When both client and server are at least running OpenVPN 2.5, that the order of10When both client and server are at least running OpenVPN 2.5, that the order of
11the ciphers of the server's ``--data-ciphers`` is used to pick the the data cipher.11the ciphers of the server's ``--data-ciphers`` is used to pick the data cipher.
12That means that the first cipher in that list that is also in the client's12That means that the first cipher in that list that is also in the client's
13``--data-ciphers`` list is chosen. If no common cipher is found the client is rejected13``--data-ciphers`` list is chosen. If no common cipher is found the client is rejected
14with a AUTH_FAILED message (as seen in client log):14with a AUTH_FAILED message (as seen in client log):
diff --git a/doc/man-sections/client-options.rst b/doc/man-sections/client-options.rst
index b92b1a4..b75fe5b 100644
--- a/doc/man-sections/client-options.rst
+++ b/doc/man-sections/client-options.rst
@@ -73,6 +73,17 @@ configuration.
73 If ``up`` is omitted, username/password will be prompted from the73 If ``up`` is omitted, username/password will be prompted from the
74 console.74 console.
7575
76 This option can also be inlined
77 ::
78
79 <auth-user-pass>
80 username
81 [password]
82 </auth-user-pass>
83
84 where password is optional, and will be prompted from the console if
85 missing.
86
76 The server configuration must specify an ``--auth-user-pass-verify``87 The server configuration must specify an ``--auth-user-pass-verify``
77 script to verify the username/password provided by the client.88 script to verify the username/password provided by the client.
7889
diff --git a/doc/man-sections/generic-options.rst b/doc/man-sections/generic-options.rst
index 95e4ca2..30c990d 100644
--- a/doc/man-sections/generic-options.rst
+++ b/doc/man-sections/generic-options.rst
@@ -75,7 +75,7 @@ which mode OpenVPN is configured as.
75 to the configuration if no other compression options are present.75 to the configuration if no other compression options are present.
76 - 2.4.x or lower: The cipher in ``--cipher`` is appended to76 - 2.4.x or lower: The cipher in ``--cipher`` is appended to
77 ``--data-ciphers``.77 ``--data-ciphers``.
78 - 2.3.x or lower: ``--data-cipher-fallback`` is automatically added with78 - 2.3.x or lower: ``--data-ciphers-fallback`` is automatically added with
79 the same cipher as ``--cipher``.79 the same cipher as ``--cipher``.
80 - 2.3.6 or lower: ``--tls-version-min 1.0`` is added to the configuration80 - 2.3.6 or lower: ``--tls-version-min 1.0`` is added to the configuration
81 when ``--tls-version-min`` is not explicitly set.81 when ``--tls-version-min`` is not explicitly set.
diff --git a/doc/man-sections/inline-files.rst b/doc/man-sections/inline-files.rst
index 01e4a84..e178667 100644
--- a/doc/man-sections/inline-files.rst
+++ b/doc/man-sections/inline-files.rst
@@ -5,7 +5,7 @@ OpenVPN allows including files in the main configuration for the ``--ca``,
5``--cert``, ``--dh``, ``--extra-certs``, ``--key``, ``--pkcs12``,5``--cert``, ``--dh``, ``--extra-certs``, ``--key``, ``--pkcs12``,
6``--secret``, ``--crl-verify``, ``--http-proxy-user-pass``, ``--tls-auth``,6``--secret``, ``--crl-verify``, ``--http-proxy-user-pass``, ``--tls-auth``,
7``--auth-gen-token-secret``, ``--peer-fingerprint``, ``--tls-crypt``,7``--auth-gen-token-secret``, ``--peer-fingerprint``, ``--tls-crypt``,
8``--tls-crypt-v2`` and ``--verify-hash`` options.8``--tls-crypt-v2``, ``--verify-hash`` and ``--auth-user-pass`` options.
99
10Each inline file started by the line ``<option>`` and ended by the line10Each inline file started by the line ``<option>`` and ended by the line
11``</option>``11``</option>``
diff --git a/doc/man-sections/vpn-network-options.rst b/doc/man-sections/vpn-network-options.rst
index 41d367b..abe474f 100644
--- a/doc/man-sections/vpn-network-options.rst
+++ b/doc/man-sections/vpn-network-options.rst
@@ -235,7 +235,7 @@ routing.
235 address and subnet mask just as a physical ethernet adapter would be235 address and subnet mask just as a physical ethernet adapter would be
236 similarly configured. If you are attempting to connect to a remote236 similarly configured. If you are attempting to connect to a remote
237 ethernet bridge, the IP address and subnet should be set to values which237 ethernet bridge, the IP address and subnet should be set to values which
238 would be valid on the the bridged ethernet segment (note also that DHCP238 would be valid on the bridged ethernet segment (note also that DHCP
239 can be used for the same purpose).239 can be used for the same purpose).
240240
241 This option, while primarily a proxy for the ``ifconfig``\(8) command,241 This option, while primarily a proxy for the ``ifconfig``\(8) command,
@@ -584,7 +584,7 @@ These two standalone operations will require ``--dev`` and optionally
584 One of the advantages of persistent tunnels is that they eliminate the584 One of the advantages of persistent tunnels is that they eliminate the
585 need for separate ``--up`` and ``--down`` scripts to run the appropriate585 need for separate ``--up`` and ``--down`` scripts to run the appropriate
586 ``ifconfig``\(8) and ``route``\(8) commands. These commands can be586 ``ifconfig``\(8) and ``route``\(8) commands. These commands can be
587 placed in the the same shell script which starts or terminates an587 placed in the same shell script which starts or terminates an
588 OpenVPN session.588 OpenVPN session.
589589
590 Another advantage is that open connections through the TUN/TAP-based590 Another advantage is that open connections through the TUN/TAP-based
diff --git a/doc/openvpn-examples.5 b/doc/openvpn-examples.5
index fe3d283..05fce90 100644
--- a/doc/openvpn-examples.5
+++ b/doc/openvpn-examples.5
@@ -1,8 +1,5 @@
1.\" Man page generated from reStructuredText.1.\" Man page generated from reStructuredText.
2.2.
3.TH OPENVPN EXAMPLES 5 "" "" "Configuration files"
4.SH NAME
5openvpn examples \- Secure IP tunnel daemon
6.3.
7.nr rst2man-indent-level 04.nr rst2man-indent-level 0
8.5.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
30.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]27.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31.in \\n[rst2man-indent\\n[rst2man-indent-level]]u28.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32..29..
30.TH "OPENVPN EXAMPLES" 5 "" "" "Configuration files"
31.SH NAME
32openvpn examples \- Secure IP tunnel daemon
33.SH INTRODUCTION33.SH INTRODUCTION
34.sp34.sp
35This man page gives a few simple examples to create OpenVPN setups and configuration files.35This man page gives a few simple examples to create OpenVPN setups and configuration files.
@@ -464,7 +464,7 @@ On bob:
464.ft C464.ft C
465openvpn \-\-ifconfig 10.4.0.1 10.4.0.2 \-\-tls\-server \-\-dev tun \-\-dh none \e465openvpn \-\-ifconfig 10.4.0.1 10.4.0.2 \-\-tls\-server \-\-dev tun \-\-dh none \e
466 \-\-cert bob.pem \-\-key bob.pem \-\-cipher AES\-256\-GCM \e466 \-\-cert bob.pem \-\-key bob.pem \-\-cipher AES\-256\-GCM \e
467 \-\-peer\-fingerprint "$fingerprint_of_alices_cert"467 \-\-peer\-fingerprint \(dq$fingerprint_of_alices_cert\(dq
468.ft P468.ft P
469.fi469.fi
470.UNINDENT470.UNINDENT
@@ -479,7 +479,7 @@ On alice:
479openvpn \-\-remote bob.example.com \-\-tls\-client \-\-dev tun1 \e479openvpn \-\-remote bob.example.com \-\-tls\-client \-\-dev tun1 \e
480 \-\-ifconfig 10.4.0.2 10.4.0.1 \-\-cipher AES\-256\-GCM \e480 \-\-ifconfig 10.4.0.2 10.4.0.1 \-\-cipher AES\-256\-GCM \e
481 \-\-cert alice.pem \-\-key alice.pem \e481 \-\-cert alice.pem \-\-key alice.pem \e
482 \-\-peer\-fingerprint "$fingerprint_of_bobs_cert"482 \-\-peer\-fingerprint \(dq$fingerprint_of_bobs_cert\(dq
483.ft P483.ft P
484.fi484.fi
485.UNINDENT485.UNINDENT
diff --git a/doc/openvpn-examples.5.html b/doc/openvpn-examples.5.html
index 1f029d5..4fbaa8e 100644
--- a/doc/openvpn-examples.5.html
+++ b/doc/openvpn-examples.5.html
@@ -1,20 +1,20 @@
1<?xml version="1.0" encoding="utf-8" ?>1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.16: http://docutils.sourceforge.net/" />6<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
7<title>openvpn examples</title>7<title>openvpn examples</title>
8<style type="text/css">8<style type="text/css">
99
10/*10/*
11:Author: David Goodger (goodger@python.org)11:Author: David Goodger (goodger@python.org)
12:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $12:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
13:Copyright: This stylesheet has been placed in the public domain.13:Copyright: This stylesheet has been placed in the public domain.
1414
15Default cascading style sheet for the HTML output of Docutils.15Default cascading style sheet for the HTML output of Docutils.
1616
17See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to17See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
18customize this style sheet.18customize this style sheet.
19*/19*/
2020
diff --git a/doc/openvpn.8 b/doc/openvpn.8
index 2223ad6..833278e 100644
--- a/doc/openvpn.8
+++ b/doc/openvpn.8
@@ -76,7 +76,7 @@ with a relatively lightweight footprint.
76.sp76.sp
77OpenVPN allows any option to be placed either on the command line or in77OpenVPN allows any option to be placed either on the command line or in
78a configuration file. Though all command line options are preceded by a78a configuration file. Though all command line options are preceded by a
79double\-leading\-dash ("\-\-"), this prefix can be removed when an option is79double\-leading\-dash (\(dq\-\-\(dq), this prefix can be removed when an option is
80placed in a configuration file.80placed in a configuration file.
81.SS Generic Options81.SS Generic Options
82.sp82.sp
@@ -105,7 +105,7 @@ It is always cached.
105.BI \-\-cd \ dir105.BI \-\-cd \ dir
106Change directory to \fBdir\fP prior to reading any files such as106Change directory to \fBdir\fP prior to reading any files such as
107configuration files, key files, scripts, etc. \fBdir\fP should be an107configuration files, key files, scripts, etc. \fBdir\fP should be an
108absolute path, with a leading "/", and without any references to the108absolute path, with a leading \(dq/\(dq, and without any references to the
109current directory such as \fB\&.\fP or \fB\&..\fP\&.109current directory such as \fB\&.\fP or \fB\&..\fP\&.
110.sp110.sp
111This option is useful when you are running OpenVPN in \fB\-\-daemon\fP mode,111This option is useful when you are running OpenVPN in \fB\-\-daemon\fP mode,
@@ -158,7 +158,7 @@ to the configuration if no other compression options are present.
1582.4.x or lower: The cipher in \fB\-\-cipher\fP is appended to1582.4.x or lower: The cipher in \fB\-\-cipher\fP is appended to
159\fB\-\-data\-ciphers\fP\&.159\fB\-\-data\-ciphers\fP\&.
160.IP \(bu 2160.IP \(bu 2
1612.3.x or lower: \fB\-\-data\-cipher\-fallback\fP is automatically added with1612.3.x or lower: \fB\-\-data\-ciphers\-fallback\fP is automatically added with
162the same cipher as \fB\-\-cipher\fP\&.162the same cipher as \fB\-\-cipher\fP\&.
163.IP \(bu 2163.IP \(bu 2
1642.3.6 or lower: \fB\-\-tls\-version\-min 1.0\fP is added to the configuration1642.3.6 or lower: \fB\-\-tls\-version\-min 1.0\fP is added to the configuration
@@ -178,8 +178,8 @@ file\fP
178.sp178.sp
179Note that configuration files can be nested to a reasonable depth.179Note that configuration files can be nested to a reasonable depth.
180.sp180.sp
181Double quotation or single quotation characters ("", \(aq\(aq) can be used to181Double quotation or single quotation characters (\(dq\(dq, \(aq\(aq) can be used to
182enclose single parameters containing whitespace, and "#" or ";"182enclose single parameters containing whitespace, and \(dq#\(dq or \(dq;\(dq
183characters in the first column can be used to denote comments.183characters in the first column can be used to denote comments.
184.sp184.sp
185Note that OpenVPN 2.0 and higher performs backslash\-based shell escaping185Note that OpenVPN 2.0 and higher performs backslash\-based shell escaping
@@ -191,7 +191,7 @@ should be observed:
191.nf191.nf
192.ft C192.ft C
193\e\e Maps to a single backslash character (\e).193\e\e Maps to a single backslash character (\e).
194\e" Pass a literal doublequote character ("), don\(aqt194\e\(dq Pass a literal doublequote character (\(dq), don\(aqt
195 interpret it as enclosing a parameter.195 interpret it as enclosing a parameter.
196\e[SPACE] Pass a literal space or tab character, don\(aqt196\e[SPACE] Pass a literal space or tab character, don\(aqt
197 interpret it as a parameter delimiter.197 interpret it as a parameter delimiter.
@@ -206,7 +206,7 @@ For example on Windows, use double backslashes to represent pathnames:
206.sp206.sp
207.nf207.nf
208.ft C208.ft C
209secret "c:\e\eOpenVPN\e\esecret.key"209secret \(dqc:\e\eOpenVPN\e\esecret.key\(dq
210.ft P210.ft P
211.fi211.fi
212.UNINDENT212.UNINDENT
@@ -295,7 +295,7 @@ on console) and \fB\-\-auth\-nocache\fP will fail as soon as key
295renegotiation (and reauthentication) occurs.295renegotiation (and reauthentication) occurs.
296.TP296.TP
297.B \-\-disable\-dco297.B \-\-disable\-dco
298Disable "data channel offload" (DCO).298Disable \(dqdata channel offload\(dq (DCO).
299.sp299.sp
300On Linux don\(aqt use the ovpn\-dco device driver, but rather rely on the300On Linux don\(aqt use the ovpn\-dco device driver, but rather rely on the
301legacy tun module.301legacy tun module.
@@ -304,7 +304,7 @@ You may want to use this option if your server needs to allow clients
304older than version 2.4 to connect.304older than version 2.4 to connect.
305.TP305.TP
306.B \-\-disable\-occ306.B \-\-disable\-occ
307\fBDEPRECATED\fP Disable "options consistency check" (OCC) in configurations307\fBDEPRECATED\fP Disable \(dqoptions consistency check\(dq (OCC) in configurations
308that do not use TLS.308that do not use TLS.
309.sp309.sp
310Don\(aqt output a warning message if option inconsistencies are detected310Don\(aqt output a warning message if option inconsistencies are detected
@@ -946,7 +946,7 @@ for the client, for example:
946.nf946.nf
947.ft C947.ft C
948comp\-lzo yes948comp\-lzo yes
949push "comp\-lzo yes"949push \(dqcomp\-lzo yes\(dq
950.ft P950.ft P
951.fi951.fi
952.UNINDENT952.UNINDENT
@@ -1140,7 +1140,7 @@ To make use of this feature, the \fB\-\-client\-connect\fP script or
1140.sp1140.sp
1141.nf1141.nf
1142.ft C1142.ft C
1143push "auth\-token UNIQUE_TOKEN_VALUE"1143push \(dqauth\-token UNIQUE_TOKEN_VALUE\(dq
1144.ft P1144.ft P
1145.fi1145.fi
1146.UNINDENT1146.UNINDENT
@@ -1184,6 +1184,24 @@ lines. If the password line is missing, OpenVPN will prompt for one.
1184If \fBup\fP is omitted, username/password will be prompted from the1184If \fBup\fP is omitted, username/password will be prompted from the
1185console.1185console.
1186.sp1186.sp
1187This option can also be inlined
1188.INDENT 7.0
1189.INDENT 3.5
1190.sp
1191.nf
1192.ft C
1193<auth\-user\-pass>
1194username
1195[password]
1196</auth\-user\-pass>
1197.ft P
1198.fi
1199.UNINDENT
1200.UNINDENT
1201.sp
1202where password is optional, and will be prompted from the console if
1203missing.
1204.sp
1187The server configuration must specify an \fB\-\-auth\-user\-pass\-verify\fP1205The server configuration must specify an \fB\-\-auth\-user\-pass\-verify\fP
1188script to verify the username/password provided by the client.1206script to verify the username/password provided by the client.
1189.TP1207.TP
@@ -1407,7 +1425,7 @@ If the optional \fBbytes\fP parameter is included, exit if less than
1407in \fBn\fP seconds.1425in \fBn\fP seconds.
1408.sp1426.sp
1409In any case, OpenVPN\(aqs internal ping packets (which are just keepalives)1427In any case, OpenVPN\(aqs internal ping packets (which are just keepalives)
1410and TLS control packets are not considered "activity", nor are they1428and TLS control packets are not considered \(dqactivity\(dq, nor are they
1411counted as traffic, as they are used internally by OpenVPN and are not1429counted as traffic, as they are used internally by OpenVPN and are not
1412an indication of actual user activity.1430an indication of actual user activity.
1413.TP1431.TP
@@ -1469,7 +1487,7 @@ that
1469.sp1487.sp
1470.nf1488.nf
1471.ft C1489.ft C
1472pull\-filter ignore "route"1490pull\-filter ignore \(dqroute\(dq
1473.ft P1491.ft P
1474.fi1492.fi
1475.UNINDENT1493.UNINDENT
@@ -1483,8 +1501,8 @@ embed spaces.
1483.sp1501.sp
1484.nf1502.nf
1485.ft C1503.ft C
1486pull\-filter accept "route 192.168.1."1504pull\-filter accept \(dqroute 192.168.1.\(dq
1487pull\-filter ignore "route "1505pull\-filter ignore \(dqroute \(dq
1488.ft P1506.ft P
1489.fi1507.fi
1490.UNINDENT1508.UNINDENT
@@ -1701,8 +1719,8 @@ kind of basic load\-balancing measure.
1701.TP1719.TP
1702.B \-\-remote\-random\-hostname1720.B \-\-remote\-random\-hostname
1703Prepend a random string (6 bytes, 12 hex characters) to hostname to1721Prepend a random string (6 bytes, 12 hex characters) to hostname to
1704prevent DNS caching. For example, "foo.bar.gov" would be modified to1722prevent DNS caching. For example, \(dqfoo.bar.gov\(dq would be modified to
1705"<random\-chars>.foo.bar.gov".1723\(dq<random\-chars>.foo.bar.gov\(dq.
1706.TP1724.TP
1707.BI \-\-resolv\-retry \ n1725.BI \-\-resolv\-retry \ n
1708If hostname resolve fails for \fB\-\-remote\fP, retry resolve for \fBn\fP1726If hostname resolve fails for \fB\-\-remote\fP, retry resolve for \fBn\fP
@@ -1800,7 +1818,7 @@ http\-proxy proxy.example.net 3128 auto\-nct
1800http\-proxy proxy.example.net 3128 auto1818http\-proxy proxy.example.net 3128 auto
1801http\-proxy\-user\-pass authfile.txt1819http\-proxy\-user\-pass authfile.txt
1802# basic authentication, specify credentials inline1820# basic authentication, specify credentials inline
1803http\-proxy proxy.example.net 3128 "" basic1821http\-proxy proxy.example.net 3128 \(dq\(dq basic
1804<http\-proxy\-user\-pass>1822<http\-proxy\-user\-pass>
1805username1823username
1806password1824password
@@ -1841,7 +1859,7 @@ options.
1841Set HTTP version number to \fBversion\fP (default \fB1.0\fP).1859Set HTTP version number to \fBversion\fP (default \fB1.0\fP).
1842.TP1860.TP
1843.B \fBAGENT\fP \fBuser\-agent\fP1861.B \fBAGENT\fP \fBuser\-agent\fP
1844Set HTTP "User\-Agent" string to \fBuser\-agent\fP\&.1862Set HTTP \(dqUser\-Agent\(dq string to \fBuser\-agent\fP\&.
1845.TP1863.TP
1846.B \fBCUSTOM\-HEADER\fP \fBname\fP \fBcontent\fP1864.B \fBCUSTOM\-HEADER\fP \fBname\fP \fBcontent\fP
1847Adds the custom Header with \fBname\fP as name and \fBcontent\fP as1865Adds the custom Header with \fBname\fP as name and \fBcontent\fP as
@@ -1987,7 +2005,7 @@ user\-defined authentication module/script to accept or deny the client
1987based on other factors (such as the setting of X509 certificate fields).2005based on other factors (such as the setting of X509 certificate fields).
1988When this option is used, and a connecting client does not submit a2006When this option is used, and a connecting client does not submit a
1989username/password, the user\-defined authentication module/script will2007username/password, the user\-defined authentication module/script will
1990see the username and password as being set to empty strings (""). The2008see the username and password as being set to empty strings (\(dq\(dq). The
1991authentication module/script MUST have logic to detect this condition2009authentication module/script MUST have logic to detect this condition
1992and respond accordingly.2010and respond accordingly.
1993.TP2011.TP
@@ -2002,7 +2020,7 @@ directory for a file having the same name as the client\(aqs X509 common
2002name. If a matching file exists, it will be opened and parsed for2020name. If a matching file exists, it will be opened and parsed for
2003client\-specific configuration options. If no matching file is found,2021client\-specific configuration options. If no matching file is found,
2004OpenVPN will instead try to open and parse a default file called2022OpenVPN will instead try to open and parse a default file called
2005"DEFAULT", which may be provided but is not required. Note that the2023\(dqDEFAULT\(dq, which may be provided but is not required. Note that the
2006configuration files must be readable by the OpenVPN process after it has2024configuration files must be readable by the OpenVPN process after it has
2007dropped it\(aqs root privileges.2025dropped it\(aqs root privileges.
2008.sp2026.sp
@@ -2025,7 +2043,7 @@ single tun or tap interface, it is effectively a router. The
2025client\-to\-client traffic rather than pushing all client\-originating2043client\-to\-client traffic rather than pushing all client\-originating
2026traffic to the TUN/TAP interface.2044traffic to the TUN/TAP interface.
2027.sp2045.sp
2028When this option is used, each client will "see" the other clients which2046When this option is used, each client will \(dqsee\(dq the other clients which
2029are currently connected. Otherwise, each client will only see the2047are currently connected. Otherwise, each client will only see the
2030server. Don\(aqt use this option if you want to firewall tunnel traffic2048server. Don\(aqt use this option if you want to firewall tunnel traffic
2031using custom, per\-client rules.2049using custom, per\-client rules.
@@ -2308,10 +2326,10 @@ using \fB\-\-client\-config\-dir\fP or dynamically generated using a
2308\fB\-\-client\-connect\fP script.2326\fB\-\-client\-connect\fP script.
2309.sp2327.sp
2310The \fB\-\-iroute\fP directive also has an important interaction with2328The \fB\-\-iroute\fP directive also has an important interaction with
2311\fB\-\-push "route ..."\fP\&. \fB\-\-iroute\fP essentially defines a subnet which2329\fB\-\-push \(dqroute ...\(dq\fP\&. \fB\-\-iroute\fP essentially defines a subnet which
2312is owned by a particular client (we will call this client \fIA\fP). If you2330is owned by a particular client (we will call this client \fIA\fP). If you
2313would like other clients to be able to reach \fIA\fP\(aqs subnet, you can use2331would like other clients to be able to reach \fIA\fP\(aqs subnet, you can use
2314\fB\-\-push "route ..."\fP together with \fB\-\-client\-to\-client\fP to effect2332\fB\-\-push \(dqroute ...\(dq\fP together with \fB\-\-client\-to\-client\fP to effect
2315this. In order for all clients to see \fIA\fP\(aqs subnet, OpenVPN must push2333this. In order for all clients to see \fIA\fP\(aqs subnet, OpenVPN must push
2316this route to all clients EXCEPT for \fIA\fP, since the subnet is already2334this route to all clients EXCEPT for \fIA\fP, since the subnet is already
2317owned by \fIA\fP\&. OpenVPN accomplishes this by not not pushing a route to2335owned by \fIA\fP\&. OpenVPN accomplishes this by not not pushing a route to
@@ -2397,7 +2415,7 @@ Not implemented on Windows.
2397.TP2415.TP
2398.BI \-\-push \ option2416.BI \-\-push \ option
2399Push a config file option back to the client for remote execution. Note2417Push a config file option back to the client for remote execution. Note
2400that \fBoption\fP must be enclosed in double quotes (\fB""\fP). The2418that \fBoption\fP must be enclosed in double quotes (\fB\(dq\(dq\fP). The
2401client must specify \fB\-\-pull\fP in its config file. The set of options2419client must specify \fB\-\-pull\fP in its config file. The set of options
2402which can be pushed is limited by both feasibility and security. Some2420which can be pushed is limited by both feasibility and security. Some
2403options such as those which would execute scripts are banned, since they2421options such as those which would execute scripts are banned, since they
@@ -2415,11 +2433,11 @@ This is a partial list of options which can currently be pushed:
2415\fB\-\-rcvbuf\fP, \fB\-\-session\-timeout\fP2433\fB\-\-rcvbuf\fP, \fB\-\-session\-timeout\fP
2416.TP2434.TP
2417.BI \-\-push\-remove \ opt2435.BI \-\-push\-remove \ opt
2418Selectively remove all \fB\-\-push\fP options matching "opt" from the option2436Selectively remove all \fB\-\-push\fP options matching \(dqopt\(dq from the option
2419list for a client. \fBopt\fP is matched as a substring against the whole2437list for a client. \fBopt\fP is matched as a substring against the whole
2420option string to\-be\-pushed to the client, so \fB\-\-push\-remove route\fP2438option string to\-be\-pushed to the client, so \fB\-\-push\-remove route\fP
2421would remove all \fB\-\-push route ...\fP and \fB\-\-push route\-ipv6 ...\fP2439would remove all \fB\-\-push route ...\fP and \fB\-\-push route\-ipv6 ...\fP
2422statements, while \fB\-\-push\-remove "route\-ipv6 2001:"\fP would only remove2440statements, while \fB\-\-push\-remove \(dqroute\-ipv6 2001:\(dq\fP would only remove
2423IPv6 routes for \fB2001:...\fP networks.2441IPv6 routes for \fB2001:...\fP networks.
2424.sp2442.sp
2425\fB\-\-push\-remove\fP can only be used in a client\-specific context, like in2443\fB\-\-push\-remove\fP can only be used in a client\-specific context, like in
@@ -2478,7 +2496,7 @@ For example, \fB\-\-server 10.8.0.0 255.255.255.0\fP expands as follows:
2478.ft C2496.ft C
2479mode server2497mode server
2480tls\-server2498tls\-server
2481push "topology [topology]"2499push \(dqtopology [topology]\(dq
24822500
2483if dev tun AND (topology == net30 OR topology == p2p):2501if dev tun AND (topology == net30 OR topology == p2p):
2484 ifconfig 10.8.0.1 10.8.0.22502 ifconfig 10.8.0.1 10.8.0.2
@@ -2486,15 +2504,15 @@ if dev tun AND (topology == net30 OR topology == p2p):
2486 ifconfig\-pool 10.8.0.4 10.8.0.2512504 ifconfig\-pool 10.8.0.4 10.8.0.251
2487 route 10.8.0.0 255.255.255.02505 route 10.8.0.0 255.255.255.0
2488 if client\-to\-client:2506 if client\-to\-client:
2489 push "route 10.8.0.0 255.255.255.0"2507 push \(dqroute 10.8.0.0 255.255.255.0\(dq
2490 else if topology == net30:2508 else if topology == net30:
2491 push "route 10.8.0.1"2509 push \(dqroute 10.8.0.1\(dq
24922510
2493if dev tap OR (dev tun AND topology == subnet):2511if dev tap OR (dev tun AND topology == subnet):
2494 ifconfig 10.8.0.1 255.255.255.02512 ifconfig 10.8.0.1 255.255.255.0
2495 if !nopool:2513 if !nopool:
2496 ifconfig\-pool 10.8.0.2 10.8.0.253 255.255.255.02514 ifconfig\-pool 10.8.0.2 10.8.0.253 255.255.255.0
2497 push "route\-gateway 10.8.0.1"2515 push \(dqroute\-gateway 10.8.0.1\(dq
2498 if route\-gateway unset:2516 if route\-gateway unset:
2499 route\-gateway 10.8.0.22517 route\-gateway 10.8.0.2
2500.ft P2518.ft P
@@ -2535,7 +2553,7 @@ To configure ethernet bridging, you must first use your OS\(aqs bridging
2535capability to bridge the TAP interface with the ethernet NIC interface.2553capability to bridge the TAP interface with the ethernet NIC interface.
2536For example, on Linux this is done with the \fBbrctl\fP tool, and with2554For example, on Linux this is done with the \fBbrctl\fP tool, and with
2537Windows XP it is done in the Network Connections Panel by selecting the2555Windows XP it is done in the Network Connections Panel by selecting the
2538ethernet and TAP adapters and right\-clicking on "Bridge Connections".2556ethernet and TAP adapters and right\-clicking on \(dqBridge Connections\(dq.
2539.sp2557.sp
2540Next you you must manually set the IP/netmask on the bridge interface.2558Next you you must manually set the IP/netmask on the bridge interface.
2541The \fBgateway\fP and \fBnetmask\fP parameters to \fB\-\-server\-bridge\fP can be2559The \fBgateway\fP and \fBnetmask\fP parameters to \fB\-\-server\-bridge\fP can be
@@ -2557,7 +2575,7 @@ mode server
2557tls\-server2575tls\-server
25582576
2559ifconfig\-pool 10.8.0.128 10.8.0.254 255.255.255.02577ifconfig\-pool 10.8.0.128 10.8.0.254 255.255.255.0
2560push "route\-gateway 10.8.0.4"2578push \(dqroute\-gateway 10.8.0.4\(dq
2561.ft P2579.ft P
2562.fi2580.fi
2563.UNINDENT2581.UNINDENT
@@ -2573,7 +2591,7 @@ follows:
2573mode server2591mode server
2574tls\-server2592tls\-server
25752593
2576push "route\-gateway dhcp"2594push \(dqroute\-gateway dhcp\(dq
2577.ft P2595.ft P
2578.fi2596.fi
2579.UNINDENT2597.UNINDENT
@@ -2695,11 +2713,11 @@ port of the switch. All client ports are in untagged mode and the server
2695TAP device is VLAN\-tagged, untagged or accepts both, depending on the2713TAP device is VLAN\-tagged, untagged or accepts both, depending on the
2696\fB\-\-vlan\-accept\fP setting.2714\fB\-\-vlan\-accept\fP setting.
2697.sp2715.sp
2698Ethernet frames with a prepended 802.1Q tag are called "tagged". If the2716Ethernet frames with a prepended 802.1Q tag are called \(dqtagged\(dq. If the
2699VLAN Identifier (VID) field in such a tag is non\-zero, the frame is2717VLAN Identifier (VID) field in such a tag is non\-zero, the frame is
2700called "VLAN\-tagged". If the VID is zero, but the Priority Control Point2718called \(dqVLAN\-tagged\(dq. If the VID is zero, but the Priority Control Point
2701(PCP) field is non\-zero, the frame is called "prio\-tagged". If there is2719(PCP) field is non\-zero, the frame is called \(dqprio\-tagged\(dq. If there is
2702no 802.1Q tag, the frame is "untagged".2720no 802.1Q tag, the frame is \(dquntagged\(dq.
2703.sp2721.sp
2704Using the \fB\-\-vlan\-pvid v\fP option once per client (see2722Using the \fB\-\-vlan\-pvid v\fP option once per client (see
2705\-\-client\-config\-dir), each port can be associated with a certain VID.2723\-\-client\-config\-dir), each port can be associated with a certain VID.
@@ -2751,8 +2769,8 @@ untagged or tagged mode respectively.
2751.TP2769.TP
2752.B \fINote\fP:2770.B \fINote\fP:
2753Some vendors refer to switch ports running in \fBtagged\fP mode2771Some vendors refer to switch ports running in \fBtagged\fP mode
2754as "trunk ports" and switch ports running in \fBuntagged\fP mode2772as \(dqtrunk ports\(dq and switch ports running in \fBuntagged\fP mode
2755as "access ports".2773as \(dqaccess ports\(dq.
2756.UNINDENT2774.UNINDENT
2757.sp2775.sp
2758Packets forwarded from clients to the server are VLAN\-tagged with the2776Packets forwarded from clients to the server are VLAN\-tagged with the
@@ -2763,7 +2781,7 @@ If no \fIPVID\fP is configured for a given client (see \-\-vlan\-pvid) packets
2763are tagged with 1 by default.2781are tagged with 1 by default.
2764.TP2782.TP
2765.BI \-\-vlan\-pvid \ v2783.BI \-\-vlan\-pvid \ v
2766Specifies which VLAN identifier a "port" is associated with. Only valid2784Specifies which VLAN identifier a \(dqport\(dq is associated with. Only valid
2767when \fB\-\-vlan\-tagging\fP is specified.2785when \fB\-\-vlan\-tagging\fP is specified.
2768.sp2786.sp
2769In the client context, the setting specifies which VLAN ID a client is2787In the client context, the setting specifies which VLAN ID a client is
@@ -2775,8 +2793,8 @@ Valid values for \fBv\fP go from \fB1\fP through to \fB4094\fP\&. The
2775global value defaults to \fB1\fP\&. If no \fB\-\-vlan\-pvid\fP is specified in2793global value defaults to \fB1\fP\&. If no \fB\-\-vlan\-pvid\fP is specified in
2776the client context, the global value is inherited.2794the client context, the global value is inherited.
2777.sp2795.sp
2778In some switch implementations, the \fIPVID\fP is also referred to as "Native2796In some switch implementations, the \fIPVID\fP is also referred to as \(dqNative
2779VLAN".2797VLAN\(dq.
2780.UNINDENT2798.UNINDENT
2781.SH ENCRYPTION OPTIONS2799.SH ENCRYPTION OPTIONS
2782.SS SSL Library information2800.SS SSL Library information
@@ -3252,7 +3270,7 @@ This option is not supported in mbed TLS builds of OpenVPN.
3252Specify a \fBfile\fP containing one or more PEM certs (concatenated3270Specify a \fBfile\fP containing one or more PEM certs (concatenated
3253together) that complete the local certificate chain.3271together) that complete the local certificate chain.
3254.sp3272.sp
3255This option is useful for "split" CAs, where the CA for server certs is3273This option is useful for \(dqsplit\(dq CAs, where the CA for server certs is
3256different than the CA for client certs. Putting certs in this file3274different than the CA for client certs. Putting certs in this file
3257allows them to be used to complete the local certificate chain without3275allows them to be used to complete the local certificate chain without
3258trusting them to verify the peer\-submitted certificate, as would be the3276trusting them to verify the peer\-submitted certificate, as would be the
@@ -3342,7 +3360,7 @@ The \fB\-\-remote\-cert\-tls client\fP option is equivalent to
3342.nf3360.nf
3343.ft C3361.ft C
3344remote\-cert\-ku3362remote\-cert\-ku
3345remote\-cert\-eku "TLS Web Client Authentication"3363remote\-cert\-eku \(dqTLS Web Client Authentication\(dq
3346.ft P3364.ft P
3347.fi3365.fi
3348.UNINDENT3366.UNINDENT
@@ -3355,7 +3373,7 @@ The \fB\-\-remote\-cert\-tls server\fP option is equivalent to
3355.nf3373.nf
3356.ft C3374.ft C
3357remote\-cert\-ku3375remote\-cert\-ku
3358remote\-cert\-eku "TLS Web Server Authentication"3376remote\-cert\-eku \(dqTLS Web Server Authentication\(dq
3359.ft P3377.ft P
3360.fi3378.fi
3361.UNINDENT3379.UNINDENT
@@ -3386,7 +3404,7 @@ tls\-auth file 1
3386.UNINDENT3404.UNINDENT
3387.UNINDENT3405.UNINDENT
3388.sp3406.sp
3389In a nutshell, \fB\-\-tls\-auth\fP enables a kind of "HMAC firewall" on3407In a nutshell, \fB\-\-tls\-auth\fP enables a kind of \(dqHMAC firewall\(dq on
3390OpenVPN\(aqs TCP/UDP port, where TLS control channel packets bearing an3408OpenVPN\(aqs TCP/UDP port, where TLS control channel packets bearing an
3391incorrect HMAC signature can be dropped immediately without response.3409incorrect HMAC signature can be dropped immediately without response.
3392.sp3410.sp
@@ -3457,7 +3475,7 @@ OpenSSL 1.1+ restricts the list per default to
3457.sp3475.sp
3458.nf3476.nf
3459.ft C3477.ft C
3460"X25519:secp256r1:X448:secp521r1:secp384r1".3478\(dqX25519:secp256r1:X448:secp521r1:secp384r1\(dq.
3461.ft P3479.ft P
3462.fi3480.fi
3463.UNINDENT3481.UNINDENT
@@ -3500,16 +3518,16 @@ use the following approximation:
3500.INDENT 7.03518.INDENT 7.0
3501.TP3519.TP
3502.B \fBinsecure\fP3520.B \fBinsecure\fP
3503sets "security level 0"3521sets \(dqsecurity level 0\(dq
3504.TP3522.TP
3505.B \fBlegacy\fP (default)3523.B \fBlegacy\fP (default)
3506sets "security level 1"3524sets \(dqsecurity level 1\(dq
3507.TP3525.TP
3508.B \fBpreferred\fP3526.B \fBpreferred\fP
3509sets "security level 2"3527sets \(dqsecurity level 2\(dq
3510.TP3528.TP
3511.B \fBsuiteb\fP3529.B \fBsuiteb\fP
3512sets "security level 3" and \fB\-\-tls\-cipher "SUITEB128"\fP\&.3530sets \(dqsecurity level 3\(dq and \fB\-\-tls\-cipher \(dqSUITEB128\(dq\fP\&.
3513.UNINDENT3531.UNINDENT
3514.sp3532.sp
3515OpenVPN will migrate to \(aqpreferred\(aq as default in the future. Please3533OpenVPN will migrate to \(aqpreferred\(aq as default in the future. Please
@@ -3526,7 +3544,7 @@ break your connection. Use with care!
3526.INDENT 0.03544.INDENT 0.0
3527.TP3545.TP
3528.BI \-\-tls\-cipher \ l3546.BI \-\-tls\-cipher \ l
3529A list \fBl\fP of allowable TLS ciphers delimited by a colon ("\fB:\fP").3547A list \fBl\fP of allowable TLS ciphers delimited by a colon (\(dq\fB:\fP\(dq).
3530.sp3548.sp
3531These setting can be used to ensure that certain cipher suites are used3549These setting can be used to ensure that certain cipher suites are used
3532(or not used) for the TLS connection. OpenVPN uses TLS to secure the3550(or not used) for the TLS connection. OpenVPN uses TLS to secure the
@@ -3570,7 +3588,7 @@ connection,
3570.IP \(bu 23588.IP \(bu 2
3571makes it harder to identify OpenVPN traffic as such,3589makes it harder to identify OpenVPN traffic as such,
3572.IP \(bu 23590.IP \(bu 2
3573provides "poor\-man\(aqs" post\-quantum security, against attackers who will3591provides \(dqpoor\-man\(aqs\(dq post\-quantum security, against attackers who will
3574never know the pre\-shared key (i.e. no forward secrecy).3592never know the pre\-shared key (i.e. no forward secrecy).
3575.UNINDENT3593.UNINDENT
3576.sp3594.sp
@@ -3690,7 +3708,7 @@ them.
3690.TP3708.TP
3691.BI \-\-tls\-version\-min \ args3709.BI \-\-tls\-version\-min \ args
3692Sets the minimum TLS version we will accept from the peer (default in3710Sets the minimum TLS version we will accept from the peer (default in
36932.6.0 and later is "1.2").37112.6.0 and later is \(dq1.2\(dq).
3694.sp3712.sp
3695Valid syntax:3713Valid syntax:
3696.INDENT 7.03714.INDENT 7.0
@@ -3903,7 +3921,7 @@ Examples:
3903.ft C3921.ft C
3904x509\-track CN # exports only X509_0_CN3922x509\-track CN # exports only X509_0_CN
3905x509\-track +CN # exports X509_{n}_CN for chain3923x509\-track +CN # exports X509_{n}_CN for chain
3906x509\-track basicConstraints # exports value of "X509v3 Basic Constraints"3924x509\-track basicConstraints # exports value of \(dqX509v3 Basic Constraints\(dq
3907x509\-track SHA256 # exports SHA256 fingerprint3925x509\-track SHA256 # exports SHA256 fingerprint
3908.ft P3926.ft P
3909.fi3927.fi
@@ -4084,7 +4102,7 @@ different backwards compatibility mechanism with older server and clients.
4084.SS OpenVPN 2.5 and later behaviour4102.SS OpenVPN 2.5 and later behaviour
4085.sp4103.sp
4086When both client and server are at least running OpenVPN 2.5, that the order of4104When both client and server are at least running OpenVPN 2.5, that the order of
4087the ciphers of the server\(aqs \fB\-\-data\-ciphers\fP is used to pick the the data cipher.4105the ciphers of the server\(aqs \fB\-\-data\-ciphers\fP is used to pick the data cipher.
4088That means that the first cipher in that list that is also in the client\(aqs4106That means that the first cipher in that list that is also in the client\(aqs
4089\fB\-\-data\-ciphers\fP list is chosen. If no common cipher is found the client is rejected4107\fB\-\-data\-ciphers\fP list is chosen. If no common cipher is found the client is rejected
4090with a AUTH_FAILED message (as seen in client log):4108with a AUTH_FAILED message (as seen in client log):
@@ -4105,7 +4123,7 @@ For backwards compatibility OpenVPN 2.6 and later with \fB\-\-compat\-mode 2.4.x
4105.SS OpenVPN 2.4 clients4123.SS OpenVPN 2.4 clients
4106.sp4124.sp
4107The negotiation support in OpenVPN 2.4 was the first iteration of the implementation4125The negotiation support in OpenVPN 2.4 was the first iteration of the implementation
4108and still had some quirks. Its main goal was "upgrade to AES\-256\-GCM when possible".4126and still had some quirks. Its main goal was \(dqupgrade to AES\-256\-GCM when possible\(dq.
4109An OpenVPN 2.4 client that is built against a crypto library that supports AES in GCM4127An OpenVPN 2.4 client that is built against a crypto library that supports AES in GCM
4110mode and does not have \fB\-\-ncp\-disable\fP will always announce support for4128mode and does not have \fB\-\-ncp\-disable\fP will always announce support for
4111\fIAES\-256\-GCM\fP and \fIAES\-128\-GCM\fP to a server by sending \fBIV_NCP=2\fP\&.4129\fIAES\-256\-GCM\fP and \fIAES\-128\-GCM\fP to a server by sending \fBIV_NCP=2\fP\&.
@@ -4285,8 +4303,8 @@ For example, \fB\-\-keepalive 10 60\fP expands as follows:
4285if mode server:4303if mode server:
4286 ping 10 # Argument: interval4304 ping 10 # Argument: interval
4287 ping\-restart 120 # Argument: timeout*24305 ping\-restart 120 # Argument: timeout*2
4288 push "ping 10" # Argument: interval4306 push \(dqping 10\(dq # Argument: interval
4289 push "ping\-restart 60" # Argument: timeout4307 push \(dqping\-restart 60\(dq # Argument: timeout
4290else4308else
4291 ping 10 # Argument: interval4309 ping 10 # Argument: interval
4292 ping\-restart 60 # Argument: timeout4310 ping\-restart 60 # Argument: timeout
@@ -4613,7 +4631,7 @@ product of bandwidth and latency is high), you may want to use a larger
4613value for \fBn\fP\&. Satellite links in particular often require this.4631value for \fBn\fP\&. Satellite links in particular often require this.
4614.sp4632.sp
4615If you run OpenVPN at \fB\-\-verb 4\fP, you will see the message4633If you run OpenVPN at \fB\-\-verb 4\fP, you will see the message
4616"PID_ERR replay\-window backtrack occurred [x]" every time the maximum sequence4634\(dqPID_ERR replay\-window backtrack occurred [x]\(dq every time the maximum sequence
4617number backtrack seen thus far increases. This can be used to calibrate4635number backtrack seen thus far increases. This can be used to calibrate
4618\fBn\fP\&.4636\fBn\fP\&.
4619.sp4637.sp
@@ -4702,7 +4720,7 @@ The macro expands as follows:
4702.ft C4720.ft C
4703if mode server:4721if mode server:
4704 socket\-flags TCP_NODELAY4722 socket\-flags TCP_NODELAY
4705 push "socket\-flags TCP_NODELAY"4723 push \(dqsocket\-flags TCP_NODELAY\(dq
4706.ft P4724.ft P
4707.fi4725.fi
4708.UNINDENT4726.UNINDENT
@@ -4781,14 +4799,14 @@ clients leaking around IPv4\-only VPN services).
4781.UNINDENT4799.UNINDENT
4782.TP4800.TP
4783.B \fBServer config\fP4801.B \fBServer config\fP
4784Push a "valid" ipv6 config to the client and block on the server4802Push a \(dqvalid\(dq ipv6 config to the client and block on the server
4785.INDENT 7.04803.INDENT 7.0
4786.INDENT 3.54804.INDENT 3.5
4787.sp4805.sp
4788.nf4806.nf
4789.ft C4807.ft C
4790\-\-push "ifconfig\-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1"4808\-\-push \(dqifconfig\-ipv6 fd15:53b6:dead::2/64 fd15:53b6:dead::1\(dq
4791\-\-push "redirect\-gateway ipv6"4809\-\-push \(dqredirect\-gateway ipv6\(dq
4792\-\-block\-ipv64810\-\-block\-ipv6
4793.ft P4811.ft P
4794.fi4812.fi
@@ -4842,7 +4860,7 @@ On most platforms, \fBtunN\fP (e.g. tun2, tun30) and \fBtapN\fP
4842(e.g. tap3) will create a numbered tun/tap interface with the number4860(e.g. tap3) will create a numbered tun/tap interface with the number
4843specified \- this is useful if multiple OpenVPN instances are active,4861specified \- this is useful if multiple OpenVPN instances are active,
4844and the instance\-to\-device mapping needs to be known. Some platforms4862and the instance\-to\-device mapping needs to be known. Some platforms
4845do not support "numbered tap", so trying \fB\-\-dev tap3\fP will fail.4863do not support \(dqnumbered tap\(dq, so trying \fB\-\-dev tap3\fP will fail.
4846.sp4864.sp
4847Arbitrary device names (e.g. \fB\-\-dev tun\-home\fP) will only work on4865Arbitrary device names (e.g. \fB\-\-dev tun\-home\fP) will only work on
4848FreeBSD (with the DCO kernel driver for \fBtun\fP devices) and Linux4866FreeBSD (with the DCO kernel driver for \fBtun\fP devices) and Linux
@@ -5011,11 +5029,11 @@ across the VPN.
5011.sp5029.sp
5012For TAP devices, which provide the ability to create virtual ethernet5030For TAP devices, which provide the ability to create virtual ethernet
5013segments, or TUN devices in \fB\-\-topology subnet\fP mode (which create5031segments, or TUN devices in \fB\-\-topology subnet\fP mode (which create
5014virtual "multipoint networks"), \fB\-\-ifconfig\fP is used to set an IP5032virtual \(dqmultipoint networks\(dq), \fB\-\-ifconfig\fP is used to set an IP
5015address and subnet mask just as a physical ethernet adapter would be5033address and subnet mask just as a physical ethernet adapter would be
5016similarly configured. If you are attempting to connect to a remote5034similarly configured. If you are attempting to connect to a remote
5017ethernet bridge, the IP address and subnet should be set to values which5035ethernet bridge, the IP address and subnet should be set to values which
5018would be valid on the the bridged ethernet segment (note also that DHCP5036would be valid on the bridged ethernet segment (note also that DHCP
5019can be used for the same purpose).5037can be used for the same purpose).
5020.sp5038.sp
5021This option, while primarily a proxy for the \fBifconfig\fP(8) command,5039This option, while primarily a proxy for the \fBifconfig\fP(8) command,
@@ -5082,8 +5100,8 @@ For example, if you have a configuration where the local host uses
5082on the local host.5100on the local host.
5083.sp5101.sp
5084This option will also silence warnings about potential address conflicts5102This option will also silence warnings about potential address conflicts
5085which occasionally annoy more experienced users by triggering "false5103which occasionally annoy more experienced users by triggering \(dqfalse
5086positive" warnings.5104positive\(dq warnings.
5087.TP5105.TP
5088.BI \-\-lladdr \ address5106.BI \-\-lladdr \ address
5089Specify the link layer address, more commonly known as the MAC address.5107Specify the link layer address, more commonly known as the MAC address.
@@ -5348,8 +5366,8 @@ works on Windows as well.
5348.UNINDENT5366.UNINDENT
5349.sp5367.sp
5350\fINote:\fP Using \fB\-\-topology subnet\fP changes the interpretation of the5368\fINote:\fP Using \fB\-\-topology subnet\fP changes the interpretation of the
5351arguments of \fB\-\-ifconfig\fP to mean "address netmask", no longer "local5369arguments of \fB\-\-ifconfig\fP to mean \(dqaddress netmask\(dq, no longer \(dqlocal
5352remote".5370remote\(dq.
5353.TP5371.TP
5354.BI \-\-tun\-mtu \ args5372.BI \-\-tun\-mtu \ args
5355Valid syntaxes:5373Valid syntaxes:
@@ -5422,7 +5440,7 @@ deleted or the machine is rebooted.
5422One of the advantages of persistent tunnels is that they eliminate the5440One of the advantages of persistent tunnels is that they eliminate the
5423need for separate \fB\-\-up\fP and \fB\-\-down\fP scripts to run the appropriate5441need for separate \fB\-\-up\fP and \fB\-\-down\fP scripts to run the appropriate
5424\fBifconfig\fP(8) and \fBroute\fP(8) commands. These commands can be5442\fBifconfig\fP(8) and \fBroute\fP(8) commands. These commands can be
5425placed in the the same shell script which starts or terminates an5443placed in the same shell script which starts or terminates an
5426OpenVPN session.5444OpenVPN session.
5427.sp5445.sp
5428Another advantage is that open connections through the TUN/TAP\-based5446Another advantage is that open connections through the TUN/TAP\-based
@@ -5658,8 +5676,8 @@ non\-empty content, the content of this file will be used as AUTH_FAILED
5658message. To avoid race conditions, this file should be written before5676message. To avoid race conditions, this file should be written before
5659\fBauth_control_file\fP\&.5677\fBauth_control_file\fP\&.
5660.sp5678.sp
5661This auth fail reason can be something simple like "User has been permanently5679This auth fail reason can be something simple like \(dqUser has been permanently
5662disabled" but there are also some special auth failed messages.5680disabled\(dq but there are also some special auth failed messages.
5663.sp5681.sp
5664The \fBTEMP\fP message indicates that the authentication5682The \fBTEMP\fP message indicates that the authentication
5665temporarily failed and that the client should continue to retry to connect.5683temporarily failed and that the client should continue to retry to connect.
@@ -5867,23 +5885,23 @@ Three arguments will be appended to any arguments in \fBcmd\fP as follows:
5867.INDENT 7.05885.INDENT 7.0
5868.TP5886.TP
5869.B \fB$1\fP \- [operation]5887.B \fB$1\fP \- [operation]
5870\fB"add"\fP, \fB"update"\fP, or \fB"delete"\fP based on whether5888\fB\(dqadd\(dq\fP, \fB\(dqupdate\(dq\fP, or \fB\(dqdelete\(dq\fP based on whether
5871or not the address is being added to, modified, or deleted from5889or not the address is being added to, modified, or deleted from
5872OpenVPN\(aqs internal routing table.5890OpenVPN\(aqs internal routing table.
5873.TP5891.TP
5874.B \fB$2\fP \- [address]5892.B \fB$2\fP \- [address]
5875The address being learned or unlearned. This can be an IPv4 address5893The address being learned or unlearned. This can be an IPv4 address
5876such as \fB"198.162.10.14"\fP, an IPv4 subnet such as5894such as \fB\(dq198.162.10.14\(dq\fP, an IPv4 subnet such as
5877\fB"198.162.10.0/24"\fP, or an ethernet MAC address (when5895\fB\(dq198.162.10.0/24\(dq\fP, or an ethernet MAC address (when
5878\fB\-\-dev tap\fP is being used) such as \fB"00:FF:01:02:03:04"\fP\&.5896\fB\-\-dev tap\fP is being used) such as \fB\(dq00:FF:01:02:03:04\(dq\fP\&.
5879.TP5897.TP
5880.B \fB$3\fP \- [common name]5898.B \fB$3\fP \- [common name]
5881The common name on the certificate associated with the client linked5899The common name on the certificate associated with the client linked
5882to this address. Only present for \fB"add"\fP or \fB"update"\fP5900to this address. Only present for \fB\(dqadd\(dq\fP or \fB\(dqupdate\(dq\fP
5883operations, not \fB"delete"\fP\&.5901operations, not \fB\(dqdelete\(dq\fP\&.
5884.UNINDENT5902.UNINDENT
5885.sp5903.sp
5886On \fB"add"\fP or \fB"update"\fP methods, if the script returns5904On \fB\(dqadd\(dq\fP or \fB\(dqupdate\(dq\fP methods, if the script returns
5887a failure code (non\-zero), OpenVPN will reject the address and will not5905a failure code (non\-zero), OpenVPN will reject the address and will not
5888modify its internal routing table.5906modify its internal routing table.
5889.sp5907.sp
@@ -6137,10 +6155,10 @@ TCP/UDP connection establishment with peer.
6137.sp6155.sp
6138In \fB\-\-proto udp\fP mode, this option normally requires the use of6156In \fB\-\-proto udp\fP mode, this option normally requires the use of
6139\fB\-\-ping\fP to allow connection initiation to be sensed in the absence of6157\fB\-\-ping\fP to allow connection initiation to be sensed in the absence of
6140tunnel data, since UDP is a "connectionless" protocol.6158tunnel data, since UDP is a \(dqconnectionless\(dq protocol.
6141.sp6159.sp
6142On Windows, this option will delay the TAP\-Win32 media state6160On Windows, this option will delay the TAP\-Win32 media state
6143transitioning to "connected" until connection establishment, i.e. the6161transitioning to \(dqconnected\(dq until connection establishment, i.e. the
6144receipt of the first authenticated packet from the peer.6162receipt of the first authenticated packet from the peer.
6145.TP6163.TP
6146.B \-\-up\-restart6164.B \-\-up\-restart
@@ -6186,13 +6204,13 @@ starting with OpenVPN 2.0.1, the username is passed to the
6186without string remapping.6204without string remapping.
6187.TP6205.TP
6188.B \fI\-\-auth\-user\-pass password\fP6206.B \fI\-\-auth\-user\-pass password\fP
6189Any "printable" character except CR or LF. Printable is defined to be6207Any \(dqprintable\(dq character except CR or LF. Printable is defined to be
6190a character which will cause the C library isprint() function to6208a character which will cause the C library isprint() function to
6191return true.6209return true.
6192.TP6210.TP
6193.B \fI\-\-client\-config\-dir filename as derived from common name or\(gausername\fP6211.B \fI\-\-client\-config\-dir filename as derived from common name or\(gausername\fP
6194Alphanumeric, underbar (\(aq_\(aq), dash (\(aq\-\(aq), and dot (\(aq.\(aq) except for "."6212Alphanumeric, underbar (\(aq_\(aq), dash (\(aq\-\(aq), and dot (\(aq.\(aq) except for \(dq.\(dq
6195or ".." as standalone strings. As of v2.0.1\-rc6, the at (\(aq@\(aq) character6213or \(dq..\(dq as standalone strings. As of v2.0.1\-rc6, the at (\(aq@\(aq) character
6196has been added as well for compatibility with the common name character6214has been added as well for compatibility with the common name character
6197class.6215class.
6198.TP6216.TP
@@ -6265,12 +6283,12 @@ Name of first \fB\-\-config\fP file. Set on program initiation and reset on
6265SIGHUP.6283SIGHUP.
6266.TP6284.TP
6267.B \fBdaemon\fP6285.B \fBdaemon\fP
6268Set to "1" if the \fB\-\-daemon\fP directive is specified, or "0" otherwise.6286Set to \(dq1\(dq if the \fB\-\-daemon\fP directive is specified, or \(dq0\(dq otherwise.
6269Set on program initiation and reset on SIGHUP.6287Set on program initiation and reset on SIGHUP.
6270.TP6288.TP
6271.B \fBdaemon_log_redirect\fP6289.B \fBdaemon_log_redirect\fP
6272Set to "1" if the \fB\-\-log\fP or \fB\-\-log\-append\fP directives are6290Set to \(dq1\(dq if the \fB\-\-log\fP or \fB\-\-log\-append\fP directives are
6273specified, or "0" otherwise. Set on program initiation and reset on6291specified, or \(dq0\(dq otherwise. Set on program initiation and reset on
6274SIGHUP.6292SIGHUP.
6275.TP6293.TP
6276.B \fBdev\fP6294.B \fBdev\fP
@@ -6431,7 +6449,7 @@ script execution.
6431A set of variables which define each route to be added, and are set6449A set of variables which define each route to be added, and are set
6432prior to \fB\-\-up\fP script execution.6450prior to \fB\-\-up\fP script execution.
6433.sp6451.sp
6434\fBparm\fP will be one of \fBnetwork\fP, \fBnetmask"\fP,6452\fBparm\fP will be one of \fBnetwork\fP, \fBnetmask\(dq\fP,
6435\fBgateway\fP, or \fBmetric\fP\&.6453\fBgateway\fP, or \fBmetric\fP\&.
6436.sp6454.sp
6437\fBn\fP is the OpenVPN route number, starting from 1.6455\fBn\fP is the OpenVPN route number, starting from 1.
@@ -6456,7 +6474,7 @@ translations will be recorded rather than their names as denoted on the
6456command line or configuration file.6474command line or configuration file.
6457.TP6475.TP
6458.B \fBscript_context\fP6476.B \fBscript_context\fP
6459Set to "init" or "restart" prior to up/down script execution. For more6477Set to \(dqinit\(dq or \(dqrestart\(dq prior to up/down script execution. For more
6460information, see documentation for \fB\-\-up\fP\&.6478information, see documentation for \fB\-\-up\fP\&.
6461.TP6479.TP
6462.B \fBscript_type\fP6480.B \fBscript_type\fP
@@ -6503,8 +6521,8 @@ of \fB\-\-tls\-verify\fP script.
6503The serial number of the certificate from the remote peer, where \fBn\fP6521The serial number of the certificate from the remote peer, where \fBn\fP
6504is the verification level. Only set for TLS connections. Set prior to6522is the verification level. Only set for TLS connections. Set prior to
6505execution of \fB\-\-tls\-verify\fP script. This is in the form of a decimal6523execution of \fB\-\-tls\-verify\fP script. This is in the form of a decimal
6506string like "933971680", which is suitable for doing serial\-based OCSP6524string like \(dq933971680\(dq, which is suitable for doing serial\-based OCSP
6507queries (with OpenSSL, do not prepend "0x" to the string) If something6525queries (with OpenSSL, do not prepend \(dq0x\(dq to the string) If something
6508goes wrong while reading the value from the certificate it will be an6526goes wrong while reading the value from the certificate it will be an
6509empty string, so your code should check that. See the6527empty string, so your code should check that. See the
6510\fBcontrib/OCSP_check/OCSP_check.sh\fP script for an example.6528\fBcontrib/OCSP_check/OCSP_check.sh\fP script for an example.
@@ -6552,7 +6570,7 @@ the verification level. Only set for TLS connections. Set prior to
6552execution of \fB\-\-tls\-verify\fP script. This variable is similar to6570execution of \fB\-\-tls\-verify\fP script. This variable is similar to
6553\fBtls_id_{n}\fP except the component X509 subject fields are broken6571\fBtls_id_{n}\fP except the component X509 subject fields are broken
6554out, and no string remapping occurs on these field values (except for6572out, and no string remapping occurs on these field values (except for
6555remapping of control characters to "\fB_\fP"). For example, the6573remapping of control characters to \(dq\fB_\fP\(dq). For example, the
6556following variables would be set on the OpenVPN server using the sample6574following variables would be set on the OpenVPN server using the sample
6557client certificate in sample\-keys (client.crt). Note that the6575client certificate in sample\-keys (client.crt). Note that the
6558verification level is 0 for the client certificate and 1 for the CA6576verification level is 0 for the client certificate and 1 for the CA
@@ -6631,7 +6649,7 @@ clients.
6631.sp6649.sp
6632While the management port is designed for programmatic control of6650While the management port is designed for programmatic control of
6633OpenVPN by other applications, it is possible to telnet to the port,6651OpenVPN by other applications, it is possible to telnet to the port,
6634using a telnet client in "raw" mode. Once connected, type \fBhelp\fP6652using a telnet client in \(dqraw\(dq mode. Once connected, type \fBhelp\fP
6635for a list of commands.6653for a list of commands.
6636.sp6654.sp
6637For detailed documentation on the management interface, see the6655For detailed documentation on the management interface, see the
@@ -6755,7 +6773,7 @@ Valid syntax:
6755.nf6773.nf
6756.ft C6774.ft C
6757plugin module\-name6775plugin module\-name
6758plugin module\-name "arguments"6776plugin module\-name \(dqarguments\(dq
6759.ft P6777.ft P
6760.fi6778.fi
6761.UNINDENT6779.UNINDENT
@@ -6765,7 +6783,7 @@ The \fBmodule\-name\fP needs to be the first
6765argument, indicating the plug\-in to load. The second argument is an6783argument, indicating the plug\-in to load. The second argument is an
6766optional init string which will be passed directly to the plug\-in.6784optional init string which will be passed directly to the plug\-in.
6767If the init consists of multiple arguments it must be enclosed in6785If the init consists of multiple arguments it must be enclosed in
6768double\-quotes ("). Multiple plugin modules may be loaded into one6786double\-quotes (\(dq). Multiple plugin modules may be loaded into one
6769OpenVPN process.6787OpenVPN process.
6770.sp6788.sp
6771The \fBmodule\-name\fP argument can be just a filename or a filename6789The \fBmodule\-name\fP argument can be just a filename or a filename
@@ -6865,7 +6883,7 @@ certificate\(aqs subject:
6865.sp6883.sp
6866.nf6884.nf
6867.ft C6885.ft C
6868cryptoapicert "SUBJ:Peter Runestig"6886cryptoapicert \(dqSUBJ:Peter Runestig\(dq
6869.ft P6887.ft P
6870.fi6888.fi
6871.UNINDENT6889.UNINDENT
@@ -6877,7 +6895,7 @@ To select a certificate, based on certificate\(aqs thumbprint (SHA1 hash):
6877.sp6895.sp
6878.nf6896.nf
6879.ft C6897.ft C
6880cryptoapicert "THUMB:f6 49 24 41 01 b4 ..."6898cryptoapicert \(dqTHUMB:f6 49 24 41 01 b4 ...\(dq
6881.ft P6899.ft P
6882.fi6900.fi
6883.UNINDENT6901.UNINDENT
@@ -6893,7 +6911,7 @@ issuer name:
6893.sp6911.sp
6894.nf6912.nf
6895.ft C6913.ft C
6896cryptoapicert "ISSUER:Sample CA"6914cryptoapicert \(dqISSUER:Sample CA\(dq
6897.ft P6915.ft P
6898.fi6916.fi
6899.UNINDENT6917.UNINDENT
@@ -6911,7 +6929,7 @@ OpenVPN 2.4.1.
6911Ask Windows to renew the TAP adapter lease on startup. This option is6929Ask Windows to renew the TAP adapter lease on startup. This option is
6912normally unnecessary, as Windows automatically triggers a DHCP6930normally unnecessary, as Windows automatically triggers a DHCP
6913renegotiation on the TAP adapter when it comes up, however if you set6931renegotiation on the TAP adapter when it comes up, however if you set
6914the TAP\-Win32 adapter Media Status property to "Always Connected", you6932the TAP\-Win32 adapter Media Status property to \(dqAlways Connected\(dq, you
6915may need this flag.6933may need this flag.
6916.TP6934.TP
6917.BI \-\-ip\-win32 \ method6935.BI \-\-ip\-win32 \ method
@@ -6929,13 +6947,13 @@ expects the adapter to be set to.
6929.B \fBdynamic [offset] [lease\-time]\fP6947.B \fBdynamic [offset] [lease\-time]\fP
6930Automatically set the IP address and netmask by replying to DHCP6948Automatically set the IP address and netmask by replying to DHCP
6931query messages generated by the kernel. This mode is probably the6949query messages generated by the kernel. This mode is probably the
6932"cleanest" solution for setting the TCP/IP properties since it6950\(dqcleanest\(dq solution for setting the TCP/IP properties since it
6933uses the well\-known DHCP protocol. There are, however, two6951uses the well\-known DHCP protocol. There are, however, two
6934prerequisites for using this mode:6952prerequisites for using this mode:
6935.INDENT 7.06953.INDENT 7.0
6936.IP 1. 36954.IP 1. 3
6937The TCP/IP properties for the TAP\-Win32 adapter must be set6955The TCP/IP properties for the TAP\-Win32 adapter must be set
6938to "Obtain an IP address automatically", and6956to \(dqObtain an IP address automatically\(dq, and
6939.IP 2. 36957.IP 2. 3
6940OpenVPN needs to claim an IP address in the subnet for use6958OpenVPN needs to claim an IP address in the subnet for use
6941as the virtual DHCP server address.6959as the virtual DHCP server address.
@@ -6955,7 +6973,7 @@ address + offset. If offset is negative, the DHCP server will
6955masquerade as the IP address at broadcast address + offset.6973masquerade as the IP address at broadcast address + offset.
6956.sp6974.sp
6957The Windows \fBipconfig /all\fP command can be used to show what6975The Windows \fBipconfig /all\fP command can be used to show what
6958Windows thinks the DHCP server address is. OpenVPN will "claim"6976Windows thinks the DHCP server address is. OpenVPN will \(dqclaim\(dq
6959this address, so make sure to use a free address. Having said that,6977this address, so make sure to use a free address. Having said that,
6960different OpenVPN instantiations, including different ends of6978different OpenVPN instantiations, including different ends of
6961the same connection, can share the same virtual DHCP server6979the same connection, can share the same virtual DHCP server
@@ -6969,7 +6987,7 @@ when the system goes to sleep. The default lease time is one year.
6969.TP6987.TP
6970.B \fBnetsh\fP6988.B \fBnetsh\fP
6971Automatically set the IP address and netmask using the Windows6989Automatically set the IP address and netmask using the Windows
6972command\-line "netsh" command. This method appears to work correctly6990command\-line \(dqnetsh\(dq command. This method appears to work correctly
6973on Windows XP but not Windows 2000.6991on Windows XP but not Windows 2000.
6974.TP6992.TP
6975.B \fBipapi\fP6993.B \fBipapi\fP
@@ -6977,8 +6995,8 @@ Automatically set the IP address and netmask using the Windows IP
6977Helper API. This approach does not have ideal semantics, though6995Helper API. This approach does not have ideal semantics, though
6978testing has indicated that it works okay in practice. If you use6996testing has indicated that it works okay in practice. If you use
6979this option, it is best to leave the TCP/IP properties for the6997this option, it is best to leave the TCP/IP properties for the
6980TAP\-Win32 adapter in their default state, i.e. "Obtain an IP6998TAP\-Win32 adapter in their default state, i.e. \(dqObtain an IP
6981address automatically."6999address automatically.\(dq
6982.TP7000.TP
6983.B \fBadaptive\fP (Default)7001.B \fBadaptive\fP (Default)
6984Try \fBdynamic\fP method initially and fail over to \fBnetsh\fP7002Try \fBdynamic\fP method initially and fail over to \fBnetsh\fP
@@ -6991,13 +7009,13 @@ properties will be reset from DHCP to static, and this will cause
6991future OpenVPN startups using the \fBadaptive\fP mode to use7009future OpenVPN startups using the \fBadaptive\fP mode to use
6992\fBnetsh\fP immediately, rather than trying \fBdynamic\fP first.7010\fBnetsh\fP immediately, rather than trying \fBdynamic\fP first.
6993.sp7011.sp
6994To "unstick" the \fBadaptive\fP mode from using \fBnetsh\fP,7012To \(dqunstick\(dq the \fBadaptive\fP mode from using \fBnetsh\fP,
6995run OpenVPN at least once using the \fBdynamic\fP mode to restore7013run OpenVPN at least once using the \fBdynamic\fP mode to restore
6996the TAP\-Win32 adapter TCP/IP properties to a DHCP configuration.7014the TAP\-Win32 adapter TCP/IP properties to a DHCP configuration.
6997.UNINDENT7015.UNINDENT
6998.TP7016.TP
6999.B \-\-pause\-exit7017.B \-\-pause\-exit
7000Put up a "press any key to continue" message on the console prior to7018Put up a \(dqpress any key to continue\(dq message on the console prior to
7001OpenVPN program exit. This option is automatically used by the Windows7019OpenVPN program exit. This option is automatically used by the Windows
7002explorer when OpenVPN is run on a configuration file using the7020explorer when OpenVPN is run on a configuration file using the
7003right\-click explorer menu.7021right\-click explorer menu.
@@ -7084,7 +7102,7 @@ be the middle two addresses of a /30 subnet (netmask 255.255.255.252).
7084.TP7102.TP
7085.BI \-\-tap\-sleep \ n7103.BI \-\-tap\-sleep \ n
7086Cause OpenVPN to sleep for \fBn\fP seconds immediately after the TAP\-Win327104Cause OpenVPN to sleep for \fBn\fP seconds immediately after the TAP\-Win32
7087adapter state is set to "connected".7105adapter state is set to \(dqconnected\(dq.
7088.sp7106.sp
7089This option is intended to be used to troubleshoot problems with the7107This option is intended to be used to troubleshoot problems with the
7090\fB\-\-ifconfig\fP and \fB\-\-ip\-win32\fP options, and is used to give the7108\fB\-\-ifconfig\fP and \fB\-\-ip\-win32\fP options, and is used to give the
@@ -7287,7 +7305,7 @@ group.
7287An OpenVPN client will try each connection profile sequentially until it7305An OpenVPN client will try each connection profile sequentially until it
7288achieves a successful connection.7306achieves a successful connection.
7289.sp7307.sp
7290\fB\-\-remote\-random\fP can be used to initially "scramble" the connection7308\fB\-\-remote\-random\fP can be used to initially \(dqscramble\(dq the connection
7291list.7309list.
7292.sp7310.sp
7293Here is an example of connection profile usage:7311Here is an example of connection profile usage:
@@ -7360,7 +7378,7 @@ OpenVPN allows including files in the main configuration for the \fB\-\-ca\fP,
7360\fB\-\-cert\fP, \fB\-\-dh\fP, \fB\-\-extra\-certs\fP, \fB\-\-key\fP, \fB\-\-pkcs12\fP,7378\fB\-\-cert\fP, \fB\-\-dh\fP, \fB\-\-extra\-certs\fP, \fB\-\-key\fP, \fB\-\-pkcs12\fP,
7361\fB\-\-secret\fP, \fB\-\-crl\-verify\fP, \fB\-\-http\-proxy\-user\-pass\fP, \fB\-\-tls\-auth\fP,7379\fB\-\-secret\fP, \fB\-\-crl\-verify\fP, \fB\-\-http\-proxy\-user\-pass\fP, \fB\-\-tls\-auth\fP,
7362\fB\-\-auth\-gen\-token\-secret\fP, \fB\-\-peer\-fingerprint\fP, \fB\-\-tls\-crypt\fP,7380\fB\-\-auth\-gen\-token\-secret\fP, \fB\-\-peer\-fingerprint\fP, \fB\-\-tls\-crypt\fP,
7363\fB\-\-tls\-crypt\-v2\fP and \fB\-\-verify\-hash\fP options.7381\fB\-\-tls\-crypt\-v2\fP, \fB\-\-verify\-hash\fP and \fB\-\-auth\-user\-pass\fP options.
7364.sp7382.sp
7365Each inline file started by the line \fB<option>\fP and ended by the line7383Each inline file started by the line \fB<option>\fP and ended by the line
7366\fB</option>\fP7384\fB</option>\fP
diff --git a/doc/openvpn.8.html b/doc/openvpn.8.html
index 9b1992a..4e86b04 100644
--- a/doc/openvpn.8.html
+++ b/doc/openvpn.8.html
@@ -1,20 +1,20 @@
1<?xml version="1.0" encoding="utf-8" ?>1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />6<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
7<title>openvpn</title>7<title>openvpn</title>
8<style type="text/css">8<style type="text/css">
99
10/*10/*
11:Author: David Goodger (goodger@python.org)11:Author: David Goodger (goodger@python.org)
12:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $12:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
13:Copyright: This stylesheet has been placed in the public domain.13:Copyright: This stylesheet has been placed in the public domain.
1414
15Default cascading style sheet for the HTML output of Docutils.15Default cascading style sheet for the HTML output of Docutils.
1616
17See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to17See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
18customize this style sheet.18customize this style sheet.
19*/19*/
2020
@@ -492,7 +492,7 @@ version specified.</p>
492to the configuration if no other compression options are present.</li>492to the configuration if no other compression options are present.</li>
493<li>2.4.x or lower: The cipher in <tt class="docutils literal"><span class="pre">--cipher</span></tt> is appended to493<li>2.4.x or lower: The cipher in <tt class="docutils literal"><span class="pre">--cipher</span></tt> is appended to
494<tt class="docutils literal"><span class="pre">--data-ciphers</span></tt>.</li>494<tt class="docutils literal"><span class="pre">--data-ciphers</span></tt>.</li>
495<li>2.3.x or lower: <tt class="docutils literal"><span class="pre">--data-cipher-fallback</span></tt> is automatically added with495<li>2.3.x or lower: <tt class="docutils literal"><span class="pre">--data-ciphers-fallback</span></tt> is automatically added with
496the same cipher as <tt class="docutils literal"><span class="pre">--cipher</span></tt>.</li>496the same cipher as <tt class="docutils literal"><span class="pre">--cipher</span></tt>.</li>
497<li>2.3.6 or lower: <tt class="docutils literal"><span class="pre">--tls-version-min</span> 1.0</tt> is added to the configuration497<li>2.3.6 or lower: <tt class="docutils literal"><span class="pre">--tls-version-min</span> 1.0</tt> is added to the configuration
498when <tt class="docutils literal"><span class="pre">--tls-version-min</span></tt> is not explicitly set.</li>498when <tt class="docutils literal"><span class="pre">--tls-version-min</span></tt> is not explicitly set.</li>
@@ -1353,6 +1353,15 @@ auth-user-pass up
1353lines. If the password line is missing, OpenVPN will prompt for one.</p>1353lines. If the password line is missing, OpenVPN will prompt for one.</p>
1354<p>If <tt class="docutils literal">up</tt> is omitted, username/password will be prompted from the1354<p>If <tt class="docutils literal">up</tt> is omitted, username/password will be prompted from the
1355console.</p>1355console.</p>
1356<p>This option can also be inlined</p>
1357<pre class="literal-block">
1358&lt;auth-user-pass&gt;
1359username
1360[password]
1361&lt;/auth-user-pass&gt;
1362</pre>
1363<p>where password is optional, and will be prompted from the console if
1364missing.</p>
1356<p class="last">The server configuration must specify an <tt class="docutils literal"><span class="pre">--auth-user-pass-verify</span></tt>1365<p class="last">The server configuration must specify an <tt class="docutils literal"><span class="pre">--auth-user-pass-verify</span></tt>
1357script to verify the username/password provided by the client.</p>1366script to verify the username/password provided by the client.</p>
1358</td></tr>1367</td></tr>
@@ -3612,7 +3621,7 @@ different backwards compatibility mechanism with older server and clients.</p>
3612<div class="section" id="openvpn-2-5-and-later-behaviour">3621<div class="section" id="openvpn-2-5-and-later-behaviour">
3613<h2>OpenVPN 2.5 and later behaviour</h2>3622<h2>OpenVPN 2.5 and later behaviour</h2>
3614<p>When both client and server are at least running OpenVPN 2.5, that the order of3623<p>When both client and server are at least running OpenVPN 2.5, that the order of
3615the ciphers of the server's <tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> is used to pick the the data cipher.3624the ciphers of the server's <tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> is used to pick the data cipher.
3616That means that the first cipher in that list that is also in the client's3625That means that the first cipher in that list that is also in the client's
3617<tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> list is chosen. If no common cipher is found the client is rejected3626<tt class="docutils literal"><span class="pre">--data-ciphers</span></tt> list is chosen. If no common cipher is found the client is rejected
3618with a AUTH_FAILED message (as seen in client log):</p>3627with a AUTH_FAILED message (as seen in client log):</p>
@@ -4387,7 +4396,7 @@ virtual &quot;multipoint networks&quot;), <tt class="docutils literal"><span cla
4387address and subnet mask just as a physical ethernet adapter would be4396address and subnet mask just as a physical ethernet adapter would be
4388similarly configured. If you are attempting to connect to a remote4397similarly configured. If you are attempting to connect to a remote
4389ethernet bridge, the IP address and subnet should be set to values which4398ethernet bridge, the IP address and subnet should be set to values which
4390would be valid on the the bridged ethernet segment (note also that DHCP4399would be valid on the bridged ethernet segment (note also that DHCP
4391can be used for the same purpose).</p>4400can be used for the same purpose).</p>
4392<p>This option, while primarily a proxy for the <tt class="docutils literal">ifconfig</tt>(8) command,4401<p>This option, while primarily a proxy for the <tt class="docutils literal">ifconfig</tt>(8) command,
4393is designed to simplify TUN/TAP tunnel configuration by providing a4402is designed to simplify TUN/TAP tunnel configuration by providing a
@@ -4720,7 +4729,7 @@ deleted or the machine is rebooted.</p>
4720<p>One of the advantages of persistent tunnels is that they eliminate the4729<p>One of the advantages of persistent tunnels is that they eliminate the
4721need for separate <tt class="docutils literal"><span class="pre">--up</span></tt> and <tt class="docutils literal"><span class="pre">--down</span></tt> scripts to run the appropriate4730need for separate <tt class="docutils literal"><span class="pre">--up</span></tt> and <tt class="docutils literal"><span class="pre">--down</span></tt> scripts to run the appropriate
4722<tt class="docutils literal">ifconfig</tt>(8) and <tt class="docutils literal">route</tt>(8) commands. These commands can be4731<tt class="docutils literal">ifconfig</tt>(8) and <tt class="docutils literal">route</tt>(8) commands. These commands can be
4723placed in the the same shell script which starts or terminates an4732placed in the same shell script which starts or terminates an
4724OpenVPN session.</p>4733OpenVPN session.</p>
4725<p>Another advantage is that open connections through the TUN/TAP-based4734<p>Another advantage is that open connections through the TUN/TAP-based
4726tunnel will not be reset if the OpenVPN peer restarts. This can be4735tunnel will not be reset if the OpenVPN peer restarts. This can be
@@ -6343,7 +6352,7 @@ declared in all <tt class="docutils literal">&lt;connection&gt;</tt> blocks belo
6343<tt class="docutils literal"><span class="pre">--cert</span></tt>, <tt class="docutils literal"><span class="pre">--dh</span></tt>, <tt class="docutils literal"><span class="pre">--extra-certs</span></tt>, <tt class="docutils literal"><span class="pre">--key</span></tt>, <tt class="docutils literal"><span class="pre">--pkcs12</span></tt>,6352<tt class="docutils literal"><span class="pre">--cert</span></tt>, <tt class="docutils literal"><span class="pre">--dh</span></tt>, <tt class="docutils literal"><span class="pre">--extra-certs</span></tt>, <tt class="docutils literal"><span class="pre">--key</span></tt>, <tt class="docutils literal"><span class="pre">--pkcs12</span></tt>,
6344<tt class="docutils literal"><span class="pre">--secret</span></tt>, <tt class="docutils literal"><span class="pre">--crl-verify</span></tt>, <tt class="docutils literal"><span class="pre">--http-proxy-user-pass</span></tt>, <tt class="docutils literal"><span class="pre">--tls-auth</span></tt>,6353<tt class="docutils literal"><span class="pre">--secret</span></tt>, <tt class="docutils literal"><span class="pre">--crl-verify</span></tt>, <tt class="docutils literal"><span class="pre">--http-proxy-user-pass</span></tt>, <tt class="docutils literal"><span class="pre">--tls-auth</span></tt>,
6345<tt class="docutils literal"><span class="pre">--auth-gen-token-secret</span></tt>, <tt class="docutils literal"><span class="pre">--peer-fingerprint</span></tt>, <tt class="docutils literal"><span class="pre">--tls-crypt</span></tt>,6354<tt class="docutils literal"><span class="pre">--auth-gen-token-secret</span></tt>, <tt class="docutils literal"><span class="pre">--peer-fingerprint</span></tt>, <tt class="docutils literal"><span class="pre">--tls-crypt</span></tt>,
6346<tt class="docutils literal"><span class="pre">--tls-crypt-v2</span></tt> and <tt class="docutils literal"><span class="pre">--verify-hash</span></tt> options.</p>6355<tt class="docutils literal"><span class="pre">--tls-crypt-v2</span></tt>, <tt class="docutils literal"><span class="pre">--verify-hash</span></tt> and <tt class="docutils literal"><span class="pre">--auth-user-pass</span></tt> options.</p>
6347<p>Each inline file started by the line <tt class="docutils literal">&lt;option&gt;</tt> and ended by the line6356<p>Each inline file started by the line <tt class="docutils literal">&lt;option&gt;</tt> and ended by the line
6348<tt class="docutils literal">&lt;/option&gt;</tt></p>6357<tt class="docutils literal">&lt;/option&gt;</tt></p>
6349<p>Here is an example of an inline file usage</p>6358<p>Here is an example of an inline file usage</p>
diff --git a/include/Makefile.am b/include/Makefile.am
index e0d4986..3e93bf0 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -5,7 +5,7 @@
5# packet encryption, packet authentication, and5# packet encryption, packet authentication, and
6# packet compression.6# packet compression.
7#7#
8# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>8# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>9# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
10#10#
1111
diff --git a/include/Makefile.in b/include/Makefile.in
index 362ce79..a1715f2 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -21,7 +21,7 @@
21# packet encryption, packet authentication, and21# packet encryption, packet authentication, and
22# packet compression.22# packet compression.
23#23#
24# Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>24# Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
25# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>25# Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
26#26#
2727
@@ -216,6 +216,7 @@ ENABLE_UNITTESTS = @ENABLE_UNITTESTS@
216ETAGS = @ETAGS@216ETAGS = @ETAGS@
217EXEEXT = @EXEEXT@217EXEEXT = @EXEEXT@
218FGREP = @FGREP@218FGREP = @FGREP@
219FILECMD = @FILECMD@
219GIT = @GIT@220GIT = @GIT@
220GREP = @GREP@221GREP = @GREP@
221IFCONFIG = @IFCONFIG@222IFCONFIG = @IFCONFIG@
diff --git a/include/openvpn-msg.h b/include/openvpn-msg.h
index a1464cd..657eb5e 100644
--- a/include/openvpn-msg.h
+++ b/include/openvpn-msg.h
@@ -5,7 +5,7 @@
5 * packet encryption, packet authentication, and5 * packet encryption, packet authentication, and
6 * packet compression.6 * packet compression.
7 *7 *
8 * Copyright (C) 2013-2023 Heiko Hund <heiko.hund@sophos.com>8 * Copyright (C) 2013-2024 Heiko Hund <heiko.hund@sophos.com>
9 *9 *
10 * This program is free software; you can redistribute it and/or modify10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 211 * it under the terms of the GNU General Public License version 2
diff --git a/include/openvpn-plugin.h b/include/openvpn-plugin.h
index 8f8525d..b61d3f8 100644
--- a/include/openvpn-plugin.h
+++ b/include/openvpn-plugin.h
@@ -6,7 +6,7 @@
6 * packet encryption, packet authentication, and6 * packet encryption, packet authentication, and
7 * packet compression.7 * packet compression.
8 *8 *
9 * Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>9 * Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
10 *10 *
11 * This program is free software; you can redistribute it and/or modify11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 212 * it under the terms of the GNU General Public License version 2
@@ -53,7 +53,7 @@ extern "C" {
53 */53 */
54#define OPENVPN_VERSION_MAJOR 254#define OPENVPN_VERSION_MAJOR 2
55#define OPENVPN_VERSION_MINOR 655#define OPENVPN_VERSION_MINOR 6
56#define OPENVPN_VERSION_PATCH ".9"56#define OPENVPN_VERSION_PATCH ".10"
5757
58/*58/*
59 * Plug-in types. These types correspond to the set of script callbacks59 * Plug-in types. These types correspond to the set of script callbacks
diff --git a/include/openvpn-plugin.h.in b/include/openvpn-plugin.h.in
index ffbdbfc..cacef44 100644
--- a/include/openvpn-plugin.h.in
+++ b/include/openvpn-plugin.h.in
@@ -5,7 +5,7 @@
5 * packet encryption, packet authentication, and5 * packet encryption, packet authentication, and
6 * packet compression.6 * packet compression.
7 *7 *
8 * Copyright (C) 2002-2023 OpenVPN Inc <sales@openvpn.net>8 * Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9 *9 *
10 * This program is free software; you can redistribute it and/or modify10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 211 * it under the terms of the GNU General Public License version 2
diff --git a/ltmain.sh b/ltmain.sh
12old mode 10075512old mode 100755
13new mode 10064413new mode 100644
index 540a92a..2a50d7f
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,12 +1,12 @@
1#! /bin/sh1#! /usr/bin/env sh
2## DO NOT EDIT - This file generated from ./build-aux/ltmain.in2## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
3## by inline-source v2014-01-03.013## by inline-source v2019-02-19.15
44
5# libtool (GNU libtool) 2.4.65# libtool (GNU libtool) 2.4.7
6# Provide generalized library-building support services.6# Provide generalized library-building support services.
7# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 19967# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
88
9# Copyright (C) 1996-2015 Free Software Foundation, Inc.9# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
10# This is free software; see the source for copying conditions. There is NO10# This is free software; see the source for copying conditions. There is NO
11# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.11# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1212
@@ -31,8 +31,8 @@
3131
32PROGRAM=libtool32PROGRAM=libtool
33PACKAGE=libtool33PACKAGE=libtool
34VERSION="2.4.6 Debian-2.4.6-15build2"34VERSION=2.4.7
35package_revision=2.4.635package_revision=2.4.7
3636
3737
38## ------ ##38## ------ ##
@@ -64,34 +64,25 @@ package_revision=2.4.6
64# libraries, which are installed to $pkgauxdir.64# libraries, which are installed to $pkgauxdir.
6565
66# Set a version string for this script.66# Set a version string for this script.
67scriptversion=2015-01-20.17; # UTC67scriptversion=2019-02-19.15; # UTC
6868
69# General shell script boiler plate, and helper functions.69# General shell script boiler plate, and helper functions.
70# Written by Gary V. Vaughan, 200470# Written by Gary V. Vaughan, 2004
7171
72# Copyright (C) 2004-2015 Free Software Foundation, Inc.72# This is free software. There is NO warranty; not even for
73# This is free software; see the source for copying conditions. There is NO73# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
74# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.74#
7575# Copyright (C) 2004-2019, 2021 Bootstrap Authors
76# This program is free software; you can redistribute it and/or modify76#
77# it under the terms of the GNU General Public License as published by77# This file is dual licensed under the terms of the MIT license
78# the Free Software Foundation; either version 3 of the License, or78# <https://opensource.org/license/MIT>, and GPL version 2 or later
79# (at your option) any later version.79# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
8080# these licenses when using or redistributing this software or any of
81# As a special exception to the GNU General Public License, if you distribute81# the files within it. See the URLs above, or the file `LICENSE`
82# this file as part of a program or library that is built using GNU Libtool,82# included in the Bootstrap distribution for the full license texts.
83# you may include this file under the same distribution terms that you use
84# for the rest of that program.
85
86# This program is distributed in the hope that it will be useful,
87# but WITHOUT ANY WARRANTY; without even the implied warranty of
88# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
89# General Public License for more details.
90
91# You should have received a copy of the GNU General Public License
92# along with this program. If not, see <http://www.gnu.org/licenses/>.
9383
94# Please report bugs or propose patches to gary@gnu.org.84# Please report bugs or propose patches to:
85# <https://github.com/gnulib-modules/bootstrap/issues>
9586
9687
97## ------ ##88## ------ ##
@@ -139,9 +130,12 @@ do
139 _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"130 _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
140 fi"131 fi"
141done132done
142133# These NLS vars are set unconditionally (bootstrap issue #24). Unset those
143# CDPATH.134# in case the environment reset is needed later and the $save_* variant is not
144(unset CDPATH) >/dev/null 2>&1 && unset CDPATH135# defined (see the code above).
136LC_ALL=C
137LANGUAGE=C
138export LANGUAGE LC_ALL
145139
146# Make sure IFS has a sensible default140# Make sure IFS has a sensible default
147sp=' '141sp=' '
@@ -159,6 +153,26 @@ if test "${PATH_SEPARATOR+set}" != set; then
159fi153fi
160154
161155
156# func_unset VAR
157# --------------
158# Portably unset VAR.
159# In some shells, an 'unset VAR' statement leaves a non-zero return
160# status if VAR is already unset, which might be problematic if the
161# statement is used at the end of a function (thus poisoning its return
162# value) or when 'set -e' is active (causing even a spurious abort of
163# the script in this case).
164func_unset ()
165{
166 { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
167}
168
169
170# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
171func_unset CDPATH
172
173# Make sure ${,E,F}GREP behave sanely.
174func_unset GREP_OPTIONS
175
162176
163## ------------------------- ##177## ------------------------- ##
164## Locate command utilities. ##178## Locate command utilities. ##
@@ -259,7 +273,7 @@ test -z "$SED" && {
259 rm -f conftest.in conftest.tmp conftest.nl conftest.out273 rm -f conftest.in conftest.tmp conftest.nl conftest.out
260 }274 }
261275
262 func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin276 func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
263 rm -f conftest.sed277 rm -f conftest.sed
264 SED=$func_path_progs_result278 SED=$func_path_progs_result
265}279}
@@ -295,7 +309,7 @@ test -z "$GREP" && {
295 rm -f conftest.in conftest.tmp conftest.nl conftest.out309 rm -f conftest.in conftest.tmp conftest.nl conftest.out
296 }310 }
297311
298 func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin312 func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
299 GREP=$func_path_progs_result313 GREP=$func_path_progs_result
300}314}
301315
@@ -360,6 +374,35 @@ sed_double_backslash="\
360 s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g374 s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
361 s/\n//g"375 s/\n//g"
362376
377# require_check_ifs_backslash
378# ---------------------------
379# Check if we can use backslash as IFS='\' separator, and set
380# $check_ifs_backshlash_broken to ':' or 'false'.
381require_check_ifs_backslash=func_require_check_ifs_backslash
382func_require_check_ifs_backslash ()
383{
384 _G_save_IFS=$IFS
385 IFS='\'
386 _G_check_ifs_backshlash='a\\b'
387 for _G_i in $_G_check_ifs_backshlash
388 do
389 case $_G_i in
390 a)
391 check_ifs_backshlash_broken=false
392 ;;
393 '')
394 break
395 ;;
396 *)
397 check_ifs_backshlash_broken=:
398 break
399 ;;
400 esac
401 done
402 IFS=$_G_save_IFS
403 require_check_ifs_backslash=:
404}
405
363406
364## ----------------- ##407## ----------------- ##
365## Global variables. ##408## Global variables. ##
@@ -387,7 +430,7 @@ EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
387# putting '$debug_cmd' at the start of all your functions, you can get430# putting '$debug_cmd' at the start of all your functions, you can get
388# bash to show function call trace with:431# bash to show function call trace with:
389#432#
390# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name433# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
391debug_cmd=${debug_cmd-":"}434debug_cmd=${debug_cmd-":"}
392exit_cmd=:435exit_cmd=:
393436
@@ -580,16 +623,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then
580 {623 {
581 $debug_cmd624 $debug_cmd
582625
583 func_quote_for_eval "$2"626 func_quote_arg pretty "$2"
584 eval "$1+=\\ \$func_quote_for_eval_result"627 eval "$1+=\\ \$func_quote_arg_result"
585 }'628 }'
586else629else
587 func_append_quoted ()630 func_append_quoted ()
588 {631 {
589 $debug_cmd632 $debug_cmd
590633
591 func_quote_for_eval "$2"634 func_quote_arg pretty "$2"
592 eval "$1=\$$1\\ \$func_quote_for_eval_result"635 eval "$1=\$$1\\ \$func_quote_arg_result"
593 }636 }
594fi637fi
595638
@@ -1091,85 +1134,203 @@ func_relative_path ()
1091}1134}
10921135
10931136
1094# func_quote_for_eval ARG...1137# func_quote_portable EVAL ARG
1095# --------------------------1138# ----------------------------
1096# Aesthetically quote ARGs to be evaled later.1139# Internal function to portably implement func_quote_arg. Note that we still
1097# This function returns two values:1140# keep attention to performance here so we as much as possible try to avoid
1098# i) func_quote_for_eval_result1141# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
1099# double-quoted, suitable for a subsequent eval1142func_quote_portable ()
1100# ii) func_quote_for_eval_unquoted_result
1101# has all characters that are still active within double
1102# quotes backslashified.
1103func_quote_for_eval ()
1104{1143{
1105 $debug_cmd1144 $debug_cmd
11061145
1107 func_quote_for_eval_unquoted_result=1146 $require_check_ifs_backslash
1108 func_quote_for_eval_result=1147
1109 while test 0 -lt $#; do1148 func_quote_portable_result=$2
1110 case $1 in1149
1111 *[\\\`\"\$]*)1150 # one-time-loop (easy break)
1112 _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;1151 while true
1113 *)1152 do
1114 _G_unquoted_arg=$1 ;;1153 if $1; then
1115 esac1154 func_quote_portable_result=`$ECHO "$2" | $SED \
1116 if test -n "$func_quote_for_eval_unquoted_result"; then1155 -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
1117 func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"1156 break
1118 else
1119 func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
1120 fi1157 fi
11211158
1122 case $_G_unquoted_arg in1159 # Quote for eval.
1123 # Double-quote args containing shell metacharacters to delay1160 case $func_quote_portable_result in
1124 # word splitting, command substitution and variable expansion1161 *[\\\`\"\$]*)
1125 # for a subsequent eval.1162 # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
1126 # Many Bourne shells cannot handle close brackets correctly1163 # contains the shell wildcard characters.
1127 # in scan sets, so we specify it separately.1164 case $check_ifs_backshlash_broken$func_quote_portable_result in
1128 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")1165 :*|*[\[\*\?]*)
1129 _G_quoted_arg=\"$_G_unquoted_arg\"1166 func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
1167 | $SED "$sed_quote_subst"`
1168 break
1169 ;;
1170 esac
1171
1172 func_quote_portable_old_IFS=$IFS
1173 for _G_char in '\' '`' '"' '$'
1174 do
1175 # STATE($1) PREV($2) SEPARATOR($3)
1176 set start "" ""
1177 func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
1178 IFS=$_G_char
1179 for _G_part in $func_quote_portable_result
1180 do
1181 case $1 in
1182 quote)
1183 func_append func_quote_portable_result "$3$2"
1184 set quote "$_G_part" "\\$_G_char"
1185 ;;
1186 start)
1187 set first "" ""
1188 func_quote_portable_result=
1189 ;;
1190 first)
1191 set quote "$_G_part" ""
1192 ;;
1193 esac
1194 done
1195 done
1196 IFS=$func_quote_portable_old_IFS
1130 ;;1197 ;;
1131 *)1198 *) ;;
1132 _G_quoted_arg=$_G_unquoted_arg
1133 ;;
1134 esac1199 esac
11351200 break
1136 if test -n "$func_quote_for_eval_result"; then
1137 func_append func_quote_for_eval_result " $_G_quoted_arg"
1138 else
1139 func_append func_quote_for_eval_result "$_G_quoted_arg"
1140 fi
1141 shift
1142 done1201 done
1202
1203 func_quote_portable_unquoted_result=$func_quote_portable_result
1204 case $func_quote_portable_result in
1205 # double-quote args containing shell metacharacters to delay
1206 # word splitting, command substitution and variable expansion
1207 # for a subsequent eval.
1208 # many bourne shells cannot handle close brackets correctly
1209 # in scan sets, so we specify it separately.
1210 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
1211 func_quote_portable_result=\"$func_quote_portable_result\"
1212 ;;
1213 esac
1143}1214}
11441215
11451216
1146# func_quote_for_expand ARG1217# func_quotefast_eval ARG
1147# -------------------------1218# -----------------------
1148# Aesthetically quote ARG to be evaled later; same as above,1219# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
1149# but do not quote variable references.1220# but optimized for speed. Result is stored in $func_quotefast_eval.
1150func_quote_for_expand ()1221if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
1151{1222 printf -v _GL_test_printf_tilde %q '~'
1152 $debug_cmd1223 if test '\~' = "$_GL_test_printf_tilde"; then
1224 func_quotefast_eval ()
1225 {
1226 printf -v func_quotefast_eval_result %q "$1"
1227 }
1228 else
1229 # Broken older Bash implementations. Make those faster too if possible.
1230 func_quotefast_eval ()
1231 {
1232 case $1 in
1233 '~'*)
1234 func_quote_portable false "$1"
1235 func_quotefast_eval_result=$func_quote_portable_result
1236 ;;
1237 *)
1238 printf -v func_quotefast_eval_result %q "$1"
1239 ;;
1240 esac
1241 }
1242 fi
1243else
1244 func_quotefast_eval ()
1245 {
1246 func_quote_portable false "$1"
1247 func_quotefast_eval_result=$func_quote_portable_result
1248 }
1249fi
11531250
1154 case $1 in1251
1155 *[\\\`\"]*)1252# func_quote_arg MODEs ARG
1156 _G_arg=`$ECHO "$1" | $SED \1253# ------------------------
1157 -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;1254# Quote one ARG to be evaled later. MODEs argument may contain zero or more
1158 *)1255# specifiers listed below separated by ',' character. This function returns two
1159 _G_arg=$1 ;;1256# values:
1257# i) func_quote_arg_result
1258# double-quoted (when needed), suitable for a subsequent eval
1259# ii) func_quote_arg_unquoted_result
1260# has all characters that are still active within double
1261# quotes backslashified. Available only if 'unquoted' is specified.
1262#
1263# Available modes:
1264# ----------------
1265# 'eval' (default)
1266# - escape shell special characters
1267# 'expand'
1268# - the same as 'eval'; but do not quote variable references
1269# 'pretty'
1270# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
1271# be used later in func_quote to get output like: 'echo "a b"' instead
1272# of 'echo a\ b'. This is slower than default on some shells.
1273# 'unquoted'
1274# - produce also $func_quote_arg_unquoted_result which does not contain
1275# wrapping double-quotes.
1276#
1277# Examples for 'func_quote_arg pretty,unquoted string':
1278#
1279# string | *_result | *_unquoted_result
1280# ------------+-----------------------+-------------------
1281# " | \" | \"
1282# a b | "a b" | a b
1283# "a b" | "\"a b\"" | \"a b\"
1284# * | "*" | *
1285# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
1286#
1287# Examples for 'func_quote_arg pretty,unquoted,expand string':
1288#
1289# string | *_result | *_unquoted_result
1290# --------------+---------------------+--------------------
1291# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
1292func_quote_arg ()
1293{
1294 _G_quote_expand=false
1295 case ,$1, in
1296 *,expand,*)
1297 _G_quote_expand=:
1298 ;;
1160 esac1299 esac
11611300
1162 case $_G_arg in1301 case ,$1, in
1163 # Double-quote args containing shell metacharacters to delay1302 *,pretty,*|*,expand,*|*,unquoted,*)
1164 # word splitting and command substitution for a subsequent eval.1303 func_quote_portable $_G_quote_expand "$2"
1165 # Many Bourne shells cannot handle close brackets correctly1304 func_quote_arg_result=$func_quote_portable_result
1166 # in scan sets, so we specify it separately.1305 func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
1167 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")1306 ;;
1168 _G_arg=\"$_G_arg\"1307 *)
1308 # Faster quote-for-eval for some shells.
1309 func_quotefast_eval "$2"
1310 func_quote_arg_result=$func_quotefast_eval_result
1169 ;;1311 ;;
1170 esac1312 esac
1313}
1314
11711315
1172 func_quote_for_expand_result=$_G_arg1316# func_quote MODEs ARGs...
1317# ------------------------
1318# Quote all ARGs to be evaled later and join them into single command. See
1319# func_quote_arg's description for more info.
1320func_quote ()
1321{
1322 $debug_cmd
1323 _G_func_quote_mode=$1 ; shift
1324 func_quote_result=
1325 while test 0 -lt $#; do
1326 func_quote_arg "$_G_func_quote_mode" "$1"
1327 if test -n "$func_quote_result"; then
1328 func_append func_quote_result " $func_quote_arg_result"
1329 else
1330 func_append func_quote_result "$func_quote_arg_result"
1331 fi
1332 shift
1333 done
1173}1334}
11741335
11751336
@@ -1215,8 +1376,8 @@ func_show_eval ()
1215 _G_cmd=$11376 _G_cmd=$1
1216 _G_fail_exp=${2-':'}1377 _G_fail_exp=${2-':'}
12171378
1218 func_quote_for_expand "$_G_cmd"1379 func_quote_arg pretty,expand "$_G_cmd"
1219 eval "func_notquiet $func_quote_for_expand_result"1380 eval "func_notquiet $func_quote_arg_result"
12201381
1221 $opt_dry_run || {1382 $opt_dry_run || {
1222 eval "$_G_cmd"1383 eval "$_G_cmd"
@@ -1241,8 +1402,8 @@ func_show_eval_locale ()
1241 _G_fail_exp=${2-':'}1402 _G_fail_exp=${2-':'}
12421403
1243 $opt_quiet || {1404 $opt_quiet || {
1244 func_quote_for_expand "$_G_cmd"1405 func_quote_arg expand,pretty "$_G_cmd"
1245 eval "func_echo $func_quote_for_expand_result"1406 eval "func_echo $func_quote_arg_result"
1246 }1407 }
12471408
1248 $opt_dry_run || {1409 $opt_dry_run || {
@@ -1369,30 +1530,26 @@ func_lt_ver ()
1369# End:1530# End:
1370#! /bin/sh1531#! /bin/sh
13711532
1372# Set a version string for this script.
1373scriptversion=2015-10-07.11; # UTC
1374
1375# A portable, pluggable option parser for Bourne shell.1533# A portable, pluggable option parser for Bourne shell.
1376# Written by Gary V. Vaughan, 20101534# Written by Gary V. Vaughan, 2010
13771535
1378# Copyright (C) 2010-2015 Free Software Foundation, Inc.1536# This is free software. There is NO warranty; not even for
1379# This is free software; see the source for copying conditions. There is NO1537# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1380# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.1538#
13811539# Copyright (C) 2010-2019, 2021 Bootstrap Authors
1382# This program is free software: you can redistribute it and/or modify1540#
1383# it under the terms of the GNU General Public License as published by1541# This file is dual licensed under the terms of the MIT license
1384# the Free Software Foundation, either version 3 of the License, or1542# <https://opensource.org/license/MIT>, and GPL version 2 or later
1385# (at your option) any later version.1543# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
13861544# these licenses when using or redistributing this software or any of
1387# This program is distributed in the hope that it will be useful,1545# the files within it. See the URLs above, or the file `LICENSE`
1388# but WITHOUT ANY WARRANTY; without even the implied warranty of1546# included in the Bootstrap distribution for the full license texts.
1389# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1390# GNU General Public License for more details.
13911547
1392# You should have received a copy of the GNU General Public License1548# Please report bugs or propose patches to:
1393# along with this program. If not, see <http://www.gnu.org/licenses/>.1549# <https://github.com/gnulib-modules/bootstrap/issues>
13941550
1395# Please report bugs or propose patches to gary@gnu.org.1551# Set a version string for this script.
1552scriptversion=2019-02-19.15; # UTC
13961553
13971554
1398## ------ ##1555## ------ ##
@@ -1415,7 +1572,7 @@ scriptversion=2015-10-07.11; # UTC
1415#1572#
1416# In order for the '--version' option to work, you will need to have a1573# In order for the '--version' option to work, you will need to have a
1417# suitably formatted comment like the one at the top of this file1574# suitably formatted comment like the one at the top of this file
1418# starting with '# Written by ' and ending with '# warranty; '.1575# starting with '# Written by ' and ending with '# Copyright'.
1419#1576#
1420# For '-h' and '--help' to work, you will also need a one line1577# For '-h' and '--help' to work, you will also need a one line
1421# description of your script's purpose in a comment directly above the1578# description of your script's purpose in a comment directly above the
@@ -1427,7 +1584,7 @@ scriptversion=2015-10-07.11; # UTC
1427# to display verbose messages only when your user has specified1584# to display verbose messages only when your user has specified
1428# '--verbose'.1585# '--verbose'.
1429#1586#
1430# After sourcing this file, you can plug processing for additional1587# After sourcing this file, you can plug in processing for additional
1431# options by amending the variables from the 'Configuration' section1588# options by amending the variables from the 'Configuration' section
1432# below, and following the instructions in the 'Option parsing'1589# below, and following the instructions in the 'Option parsing'
1433# section further down.1590# section further down.
@@ -1476,8 +1633,8 @@ fatal_help="Try '\$progname --help' for more information."
1476## ------------------------- ##1633## ------------------------- ##
14771634
1478# This section contains functions for adding, removing, and running hooks1635# This section contains functions for adding, removing, and running hooks
1479# to the main code. A hook is just a named list of of function, that can1636# in the main code. A hook is just a list of function names that can be
1480# be run in order later on.1637# run in order later on.
14811638
1482# func_hookable FUNC_NAME1639# func_hookable FUNC_NAME
1483# -----------------------1640# -----------------------
@@ -1510,7 +1667,8 @@ func_add_hook ()
15101667
1511# func_remove_hook FUNC_NAME HOOK_FUNC1668# func_remove_hook FUNC_NAME HOOK_FUNC
1512# ------------------------------------1669# ------------------------------------
1513# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.1670# Remove HOOK_FUNC from the list of hook functions to be called by
1671# FUNC_NAME.
1514func_remove_hook ()1672func_remove_hook ()
1515{1673{
1516 $debug_cmd1674 $debug_cmd
@@ -1519,10 +1677,28 @@ func_remove_hook ()
1519}1677}
15201678
15211679
1680# func_propagate_result FUNC_NAME_A FUNC_NAME_B
1681# ---------------------------------------------
1682# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
1683# *_result variable of FUNC_NAME_B.
1684func_propagate_result ()
1685{
1686 $debug_cmd
1687
1688 func_propagate_result_result=:
1689 if eval "test \"\${${1}_result+set}\" = set"
1690 then
1691 eval "${2}_result=\$${1}_result"
1692 else
1693 func_propagate_result_result=false
1694 fi
1695}
1696
1697
1522# func_run_hooks FUNC_NAME [ARG]...1698# func_run_hooks FUNC_NAME [ARG]...
1523# ---------------------------------1699# ---------------------------------
1524# Run all hook functions registered to FUNC_NAME.1700# Run all hook functions registered to FUNC_NAME.
1525# It is assumed that the list of hook functions contains nothing more1701# It's assumed that the list of hook functions contains nothing more
1526# than a whitespace-delimited list of legal shell function names, and1702# than a whitespace-delimited list of legal shell function names, and
1527# no effort is wasted trying to catch shell meta-characters or preserve1703# no effort is wasted trying to catch shell meta-characters or preserve
1528# whitespace.1704# whitespace.
@@ -1530,26 +1706,21 @@ func_run_hooks ()
1530{1706{
1531 $debug_cmd1707 $debug_cmd
15321708
1533 _G_rc_run_hooks=false
1534
1535 case " $hookable_fns " in1709 case " $hookable_fns " in
1536 *" $1 "*) ;;1710 *" $1 "*) ;;
1537 *) func_fatal_error "'$1' does not support hook funcions.n" ;;1711 *) func_fatal_error "'$1' does not support hook functions." ;;
1538 esac1712 esac
15391713
1540 eval _G_hook_fns=\$$1_hooks; shift1714 eval _G_hook_fns=\$$1_hooks; shift
15411715
1542 for _G_hook in $_G_hook_fns; do1716 for _G_hook in $_G_hook_fns; do
1543 if eval $_G_hook '"$@"'; then1717 func_unset "${_G_hook}_result"
1544 # store returned options list back into positional1718 eval $_G_hook '${1+"$@"}'
1545 # parameters for next 'cmd' execution.1719 func_propagate_result $_G_hook func_run_hooks
1546 eval _G_hook_result=\$${_G_hook}_result1720 if $func_propagate_result_result; then
1547 eval set dummy "$_G_hook_result"; shift1721 eval set dummy "$func_run_hooks_result"; shift
1548 _G_rc_run_hooks=:
1549 fi1722 fi
1550 done1723 done
1551
1552 $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
1553}1724}
15541725
15551726
@@ -1559,14 +1730,16 @@ func_run_hooks ()
1559## --------------- ##1730## --------------- ##
15601731
1561# In order to add your own option parsing hooks, you must accept the1732# In order to add your own option parsing hooks, you must accept the
1562# full positional parameter list in your hook function, you may remove/edit1733# full positional parameter list from your hook function. You may remove
1563# any options that you action, and then pass back the remaining unprocessed1734# or edit any options that you action, and then pass back the remaining
1564# options in '<hooked_function_name>_result', escaped suitably for1735# unprocessed options in '<hooked_function_name>_result', escaped
1565# 'eval'. In this case you also must return $EXIT_SUCCESS to let the1736# suitably for 'eval'.
1566# hook's caller know that it should pay attention to1737#
1567# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that1738# The '<hooked_function_name>_result' variable is automatically unset
1568# arguments are left untouched by the hook and therefore caller will ignore the1739# before your hook gets called; for best performance, only set the
1569# result variable.1740# *_result variable when necessary (i.e. don't call the 'func_quote'
1741# function unnecessarily because it can be an expensive operation on some
1742# machines).
1570#1743#
1571# Like this:1744# Like this:
1572#1745#
@@ -1578,11 +1751,8 @@ func_run_hooks ()
1578# usage_message=$usage_message'1751# usage_message=$usage_message'
1579# -s, --silent don'\''t print informational messages1752# -s, --silent don'\''t print informational messages
1580# '1753# '
1581# # No change in '$@' (ignored completely by this hook). There is1754# # No change in '$@' (ignored completely by this hook). Leave
1582# # no need to do the equivalent (but slower) action:1755# # my_options_prep_result variable intact.
1583# # func_quote_for_eval ${1+"$@"}
1584# # my_options_prep_result=$func_quote_for_eval_result
1585# false
1586# }1756# }
1587# func_add_hook func_options_prep my_options_prep1757# func_add_hook func_options_prep my_options_prep
1588#1758#
@@ -1593,7 +1763,7 @@ func_run_hooks ()
1593#1763#
1594# args_changed=false1764# args_changed=false
1595#1765#
1596# # Note that for efficiency, we parse as many options as we can1766# # Note that, for efficiency, we parse as many options as we can
1597# # recognise in a loop before passing the remainder back to the1767# # recognise in a loop before passing the remainder back to the
1598# # caller on the first unrecognised argument we encounter.1768# # caller on the first unrecognised argument we encounter.
1599# while test $# -gt 0; do1769# while test $# -gt 0; do
@@ -1610,18 +1780,17 @@ func_run_hooks ()
1610# args_changed=:1780# args_changed=:
1611# ;;1781# ;;
1612# *) # Make sure the first unrecognised option "$_G_opt"1782# *) # Make sure the first unrecognised option "$_G_opt"
1613# # is added back to "$@", we could need that later1783# # is added back to "$@" in case we need it later,
1614# # if $args_changed is true.1784# # if $args_changed was set to 'true'.
1615# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;1785# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
1616# esac1786# esac
1617# done1787# done
1618#1788#
1789# # Only call 'func_quote' here if we processed at least one argument.
1619# if $args_changed; then1790# if $args_changed; then
1620# func_quote_for_eval ${1+"$@"}1791# func_quote eval ${1+"$@"}
1621# my_silent_option_result=$func_quote_for_eval_result1792# my_silent_option_result=$func_quote_result
1622# fi1793# fi
1623#
1624# $args_changed
1625# }1794# }
1626# func_add_hook func_parse_options my_silent_option1795# func_add_hook func_parse_options my_silent_option
1627#1796#
@@ -1632,8 +1801,6 @@ func_run_hooks ()
1632#1801#
1633# $opt_silent && $opt_verbose && func_fatal_help "\1802# $opt_silent && $opt_verbose && func_fatal_help "\
1634# '--silent' and '--verbose' options are mutually exclusive."1803# '--silent' and '--verbose' options are mutually exclusive."
1635#
1636# false
1637# }1804# }
1638# func_add_hook func_validate_options my_option_validation1805# func_add_hook func_validate_options my_option_validation
1639#1806#
@@ -1649,13 +1816,8 @@ func_options_finish ()
1649{1816{
1650 $debug_cmd1817 $debug_cmd
16511818
1652 _G_func_options_finish_exit=false1819 func_run_hooks func_options ${1+"$@"}
1653 if func_run_hooks func_options ${1+"$@"}; then1820 func_propagate_result func_run_hooks func_options_finish
1654 func_options_finish_result=$func_run_hooks_result
1655 _G_func_options_finish_exit=:
1656 fi
1657
1658 $_G_func_options_finish_exit
1659}1821}
16601822
16611823
@@ -1668,28 +1830,27 @@ func_options ()
1668{1830{
1669 $debug_cmd1831 $debug_cmd
16701832
1671 _G_rc_options=false1833 _G_options_quoted=false
16721834
1673 for my_func in options_prep parse_options validate_options options_finish1835 for my_func in options_prep parse_options validate_options options_finish
1674 do1836 do
1675 if eval func_$my_func '${1+"$@"}'; then1837 func_unset func_${my_func}_result
1676 eval _G_res_var='$'"func_${my_func}_result"1838 func_unset func_run_hooks_result
1677 eval set dummy "$_G_res_var" ; shift1839 eval func_$my_func '${1+"$@"}'
1678 _G_rc_options=:1840 func_propagate_result func_$my_func func_options
1841 if $func_propagate_result_result; then
1842 eval set dummy "$func_options_result"; shift
1843 _G_options_quoted=:
1679 fi1844 fi
1680 done1845 done
16811846
1682 # Save modified positional parameters for caller. As a top-level1847 $_G_options_quoted || {
1683 # options-parser function we always need to set the 'func_options_result'1848 # As we (func_options) are top-level options-parser function and
1684 # variable (regardless the $_G_rc_options value).1849 # nobody quoted "$@" for us yet, we need to do it explicitly for
1685 if $_G_rc_options; then1850 # caller.
1686 func_options_result=$_G_res_var1851 func_quote eval ${1+"$@"}
1687 else1852 func_options_result=$func_quote_result
1688 func_quote_for_eval ${1+"$@"}1853 }
1689 func_options_result=$func_quote_for_eval_result
1690 fi
1691
1692 $_G_rc_options
1693}1854}
16941855
16951856
@@ -1699,8 +1860,7 @@ func_options ()
1699# Note that when calling hook functions, we pass through the list of1860# Note that when calling hook functions, we pass through the list of
1700# positional parameters. If a hook function modifies that list, and1861# positional parameters. If a hook function modifies that list, and
1701# needs to propagate that back to rest of this script, then the complete1862# needs to propagate that back to rest of this script, then the complete
1702# modified list must be put in 'func_run_hooks_result' before1863# modified list must be put in 'func_run_hooks_result' before returning.
1703# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
1704func_hookable func_options_prep1864func_hookable func_options_prep
1705func_options_prep ()1865func_options_prep ()
1706{1866{
@@ -1710,14 +1870,8 @@ func_options_prep ()
1710 opt_verbose=false1870 opt_verbose=false
1711 opt_warning_types=1871 opt_warning_types=
17121872
1713 _G_rc_options_prep=false1873 func_run_hooks func_options_prep ${1+"$@"}
1714 if func_run_hooks func_options_prep ${1+"$@"}; then1874 func_propagate_result func_run_hooks func_options_prep
1715 _G_rc_options_prep=:
1716 # save modified positional parameters for caller
1717 func_options_prep_result=$func_run_hooks_result
1718 fi
1719
1720 $_G_rc_options_prep
1721}1875}
17221876
17231877
@@ -1729,27 +1883,32 @@ func_parse_options ()
1729{1883{
1730 $debug_cmd1884 $debug_cmd
17311885
1732 func_parse_options_result=1886 _G_parse_options_requote=false
1733
1734 _G_rc_parse_options=false
1735 # this just eases exit handling1887 # this just eases exit handling
1736 while test $# -gt 0; do1888 while test $# -gt 0; do
1737 # Defer to hook functions for initial option parsing, so they1889 # Defer to hook functions for initial option parsing, so they
1738 # get priority in the event of reusing an option name.1890 # get priority in the event of reusing an option name.
1739 if func_run_hooks func_parse_options ${1+"$@"}; then1891 func_run_hooks func_parse_options ${1+"$@"}
1740 eval set dummy "$func_run_hooks_result"; shift1892 func_propagate_result func_run_hooks func_parse_options
1741 _G_rc_parse_options=:1893 if $func_propagate_result_result; then
1894 eval set dummy "$func_parse_options_result"; shift
1895 # Even though we may have changed "$@", we passed the "$@" array
1896 # down into the hook and it quoted it for us (because we are in
1897 # this if-branch). No need to quote it again.
1898 _G_parse_options_requote=false
1742 fi1899 fi
17431900
1744 # Break out of the loop if we already parsed every option.1901 # Break out of the loop if we already parsed every option.
1745 test $# -gt 0 || break1902 test $# -gt 0 || break
17461903
1904 # We expect that one of the options parsed in this function matches
1905 # and thus we remove _G_opt from "$@" and need to re-quote.
1747 _G_match_parse_options=:1906 _G_match_parse_options=:
1748 _G_opt=$11907 _G_opt=$1
1749 shift1908 shift
1750 case $_G_opt in1909 case $_G_opt in
1751 --debug|-x) debug_cmd='set -x'1910 --debug|-x) debug_cmd='set -x'
1752 func_echo "enabling shell trace mode"1911 func_echo "enabling shell trace mode" >&2
1753 $debug_cmd1912 $debug_cmd
1754 ;;1913 ;;
17551914
@@ -1760,7 +1919,7 @@ func_parse_options ()
17601919
1761 --warnings|--warning|-W)1920 --warnings|--warning|-W)
1762 if test $# = 0 && func_missing_arg $_G_opt; then1921 if test $# = 0 && func_missing_arg $_G_opt; then
1763 _G_rc_parse_options=:1922 _G_parse_options_requote=:
1764 break1923 break
1765 fi1924 fi
1766 case " $warning_categories $1" in1925 case " $warning_categories $1" in
@@ -1815,7 +1974,7 @@ func_parse_options ()
1815 shift1974 shift
1816 ;;1975 ;;
18171976
1818 --) _G_rc_parse_options=: ; break ;;1977 --) _G_parse_options_requote=: ; break ;;
1819 -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;1978 -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
1820 *) set dummy "$_G_opt" ${1+"$@"}; shift1979 *) set dummy "$_G_opt" ${1+"$@"}; shift
1821 _G_match_parse_options=false1980 _G_match_parse_options=false
@@ -1823,17 +1982,16 @@ func_parse_options ()
1823 ;;1982 ;;
1824 esac1983 esac
18251984
1826 $_G_match_parse_options && _G_rc_parse_options=:1985 if $_G_match_parse_options; then
1986 _G_parse_options_requote=:
1987 fi
1827 done1988 done
18281989
18291990 if $_G_parse_options_requote; then
1830 if $_G_rc_parse_options; then
1831 # save modified positional parameters for caller1991 # save modified positional parameters for caller
1832 func_quote_for_eval ${1+"$@"}1992 func_quote eval ${1+"$@"}
1833 func_parse_options_result=$func_quote_for_eval_result1993 func_parse_options_result=$func_quote_result
1834 fi1994 fi
1835
1836 $_G_rc_parse_options
1837}1995}
18381996
18391997
@@ -1846,21 +2004,14 @@ func_validate_options ()
1846{2004{
1847 $debug_cmd2005 $debug_cmd
18482006
1849 _G_rc_validate_options=false
1850
1851 # Display all warnings if -W was not given.2007 # Display all warnings if -W was not given.
1852 test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"2008 test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
18532009
1854 if func_run_hooks func_validate_options ${1+"$@"}; then2010 func_run_hooks func_validate_options ${1+"$@"}
1855 # save modified positional parameters for caller2011 func_propagate_result func_run_hooks func_validate_options
1856 func_validate_options_result=$func_run_hooks_result
1857 _G_rc_validate_options=:
1858 fi
18592012
1860 # Bail if the options were screwed!2013 # Bail if the options were screwed!
1861 $exit_cmd $EXIT_FAILURE2014 $exit_cmd $EXIT_FAILURE
1862
1863 $_G_rc_validate_options
1864}2015}
18652016
18662017
@@ -1916,8 +2067,8 @@ func_missing_arg ()
19162067
1917# func_split_equals STRING2068# func_split_equals STRING
1918# ------------------------2069# ------------------------
1919# Set func_split_equals_lhs and func_split_equals_rhs shell variables after2070# Set func_split_equals_lhs and func_split_equals_rhs shell variables
1920# splitting STRING at the '=' sign.2071# after splitting STRING at the '=' sign.
1921test -z "$_G_HAVE_XSI_OPS" \2072test -z "$_G_HAVE_XSI_OPS" \
1922 && (eval 'x=a/b/c;2073 && (eval 'x=a/b/c;
1923 test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \2074 test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
@@ -1932,8 +2083,9 @@ then
19322083
1933 func_split_equals_lhs=${1%%=*}2084 func_split_equals_lhs=${1%%=*}
1934 func_split_equals_rhs=${1#*=}2085 func_split_equals_rhs=${1#*=}
1935 test "x$func_split_equals_lhs" = "x$1" \2086 if test "x$func_split_equals_lhs" = "x$1"; then
1936 && func_split_equals_rhs=2087 func_split_equals_rhs=
2088 fi
1937 }'2089 }'
1938else2090else
1939 # ...otherwise fall back to using expr, which is often a shell builtin.2091 # ...otherwise fall back to using expr, which is often a shell builtin.
@@ -1943,7 +2095,7 @@ else
19432095
1944 func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`2096 func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
1945 func_split_equals_rhs=2097 func_split_equals_rhs=
1946 test "x$func_split_equals_lhs" = "x$1" \2098 test "x$func_split_equals_lhs=" = "x$1" \
1947 || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`2099 || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
1948 }2100 }
1949fi #func_split_equals2101fi #func_split_equals
@@ -1969,7 +2121,7 @@ else
1969 {2121 {
1970 $debug_cmd2122 $debug_cmd
19712123
1972 func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`2124 func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
1973 func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`2125 func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
1974 }2126 }
1975fi #func_split_short_opt2127fi #func_split_short_opt
@@ -2011,31 +2163,44 @@ func_usage_message ()
2011# func_version2163# func_version
2012# ------------2164# ------------
2013# Echo version message to standard output and exit.2165# Echo version message to standard output and exit.
2166# The version message is extracted from the calling file's header
2167# comments, with leading '# ' stripped:
2168# 1. First display the progname and version
2169# 2. Followed by the header comment line matching /^# Written by /
2170# 3. Then a blank line followed by the first following line matching
2171# /^# Copyright /
2172# 4. Immediately followed by any lines between the previous matches,
2173# except lines preceding the intervening completely blank line.
2174# For example, see the header comments of this file.
2014func_version ()2175func_version ()
2015{2176{
2016 $debug_cmd2177 $debug_cmd
20172178
2018 printf '%s\n' "$progname $scriptversion"2179 printf '%s\n' "$progname $scriptversion"
2019 $SED -n '2180 $SED -n '
2020 /(C)/!b go2181 /^# Written by /!b
2021 :more2182 s|^# ||; p; n
2022 /\./!{2183
2023 N2184 :fwd2blnk
2024 s|\n# | |2185 /./ {
2025 b more2186 n
2026 }2187 b fwd2blnk
2027 :go
2028 /^# Written by /,/# warranty; / {
2029 s|^# ||
2030 s|^# *$||
2031 s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
2032 p
2033 }2188 }
2034 /^# Written by / {2189 p; n
2035 s|^# ||2190
2036 p2191 :holdwrnt
2192 s|^# ||
2193 s|^# *$||
2194 /^Copyright /!{
2195 /./H
2196 n
2197 b holdwrnt
2037 }2198 }
2038 /^warranty; /q' < "$progpath"2199
2200 s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
2201 G
2202 s|\(\n\)\n*|\1|g
2203 p; q' < "$progpath"
20392204
2040 exit $?2205 exit $?
2041}2206}
@@ -2045,12 +2210,12 @@ func_version ()
2045# mode: shell-script2210# mode: shell-script
2046# sh-indentation: 22211# sh-indentation: 2
2047# eval: (add-hook 'before-save-hook 'time-stamp)2212# eval: (add-hook 'before-save-hook 'time-stamp)
2048# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"2213# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
2049# time-stamp-time-zone: "UTC"2214# time-stamp-time-zone: "UTC"
2050# End:2215# End:
20512216
2052# Set a version string.2217# Set a version string.
2053scriptversion='(GNU libtool) 2.4.6'2218scriptversion='(GNU libtool) 2.4.7'
20542219
20552220
2056# func_echo ARG...2221# func_echo ARG...
@@ -2141,12 +2306,12 @@ include the following information:
2141 compiler: $LTCC2306 compiler: $LTCC
2142 compiler flags: $LTCFLAGS2307 compiler flags: $LTCFLAGS
2143 linker: $LD (gnu? $with_gnu_ld)2308 linker: $LD (gnu? $with_gnu_ld)
2144 version: $progname $scriptversion Debian-2.4.6-15build22309 version: $progname (GNU libtool) 2.4.7
2145 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`2310 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
2146 autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`2311 autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
21472312
2148Report bugs to <bug-libtool@gnu.org>.2313Report bugs to <bug-libtool@gnu.org>.
2149GNU libtool home page: <http://www.gnu.org/s/libtool/>.2314GNU libtool home page: <http://www.gnu.org/software/libtool/>.
2150General help using GNU software: <http://www.gnu.org/gethelp/>."2315General help using GNU software: <http://www.gnu.org/gethelp/>."
2151 exit 02316 exit 0
2152}2317}
@@ -2197,7 +2362,7 @@ fi
2197# a configuration failure hint, and exit.2362# a configuration failure hint, and exit.
2198func_fatal_configuration ()2363func_fatal_configuration ()
2199{2364{
2200 func__fatal_error ${1+"$@"} \2365 func_fatal_error ${1+"$@"} \
2201 "See the $PACKAGE documentation for more information." \2366 "See the $PACKAGE documentation for more information." \
2202 "Fatal configuration error."2367 "Fatal configuration error."
2203}2368}
@@ -2375,11 +2540,9 @@ libtool_options_prep ()
23752540
2376 if $_G_rc_lt_options_prep; then2541 if $_G_rc_lt_options_prep; then
2377 # Pass back the list of options.2542 # Pass back the list of options.
2378 func_quote_for_eval ${1+"$@"}2543 func_quote eval ${1+"$@"}
2379 libtool_options_prep_result=$func_quote_for_eval_result2544 libtool_options_prep_result=$func_quote_result
2380 fi2545 fi
2381
2382 $_G_rc_lt_options_prep
2383}2546}
2384func_add_hook func_options_prep libtool_options_prep2547func_add_hook func_options_prep libtool_options_prep
23852548
@@ -2482,11 +2645,9 @@ libtool_parse_options ()
24822645
2483 if $_G_rc_lt_parse_options; then2646 if $_G_rc_lt_parse_options; then
2484 # save modified positional parameters for caller2647 # save modified positional parameters for caller
2485 func_quote_for_eval ${1+"$@"}2648 func_quote eval ${1+"$@"}
2486 libtool_parse_options_result=$func_quote_for_eval_result2649 libtool_parse_options_result=$func_quote_result
2487 fi2650 fi
2488
2489 $_G_rc_lt_parse_options
2490}2651}
2491func_add_hook func_parse_options libtool_parse_options2652func_add_hook func_parse_options libtool_parse_options
24922653
@@ -2543,8 +2704,8 @@ libtool_validate_options ()
2543 }2704 }
25442705
2545 # Pass back the unparsed argument list2706 # Pass back the unparsed argument list
2546 func_quote_for_eval ${1+"$@"}2707 func_quote eval ${1+"$@"}
2547 libtool_validate_options_result=$func_quote_for_eval_result2708 libtool_validate_options_result=$func_quote_result
2548}2709}
2549func_add_hook func_validate_options libtool_validate_options2710func_add_hook func_validate_options libtool_validate_options
25502711
@@ -3510,8 +3671,8 @@ func_mode_compile ()
3510 esac3671 esac
3511 done3672 done
35123673
3513 func_quote_for_eval "$libobj"3674 func_quote_arg pretty "$libobj"
3514 test "X$libobj" != "X$func_quote_for_eval_result" \3675 test "X$libobj" != "X$func_quote_arg_result" \
3515 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \3676 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
3516 && func_warning "libobj name '$libobj' may not contain shell special characters."3677 && func_warning "libobj name '$libobj' may not contain shell special characters."
3517 func_dirname_and_basename "$obj" "/" ""3678 func_dirname_and_basename "$obj" "/" ""
@@ -3584,8 +3745,8 @@ compiler."
35843745
3585 func_to_tool_file "$srcfile" func_convert_file_msys_to_w323746 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
3586 srcfile=$func_to_tool_file_result3747 srcfile=$func_to_tool_file_result
3587 func_quote_for_eval "$srcfile"3748 func_quote_arg pretty "$srcfile"
3588 qsrcfile=$func_quote_for_eval_result3749 qsrcfile=$func_quote_arg_result
35893750
3590 # Only build a PIC object if we are building libtool libraries.3751 # Only build a PIC object if we are building libtool libraries.
3591 if test yes = "$build_libtool_libs"; then3752 if test yes = "$build_libtool_libs"; then
@@ -3740,7 +3901,8 @@ This mode accepts the following additional options:
3740 -prefer-non-pic try to build non-PIC objects only3901 -prefer-non-pic try to build non-PIC objects only
3741 -shared do not build a '.o' file suitable for static linking3902 -shared do not build a '.o' file suitable for static linking
3742 -static only build a '.o' file suitable for static linking3903 -static only build a '.o' file suitable for static linking
3743 -Wc,FLAG pass FLAG directly to the compiler3904 -Wc,FLAG
3905 -Xcompiler FLAG pass FLAG directly to the compiler
37443906
3745COMPILE-COMMAND is a command to be used in creating a 'standard' object file3907COMPILE-COMMAND is a command to be used in creating a 'standard' object file
3746from the given SOURCEFILE.3908from the given SOURCEFILE.
@@ -3846,6 +4008,8 @@ The following components of LINK-COMMAND are treated specially:
3846 -weak LIBNAME declare that the target provides the LIBNAME interface4008 -weak LIBNAME declare that the target provides the LIBNAME interface
3847 -Wc,FLAG4009 -Wc,FLAG
3848 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler4010 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
4011 -Wa,FLAG
4012 -Xassembler FLAG pass linker-specific FLAG directly to the assembler
3849 -Wl,FLAG4013 -Wl,FLAG
3850 -Xlinker FLAG pass linker-specific FLAG directly to the linker4014 -Xlinker FLAG pass linker-specific FLAG directly to the linker
3851 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)4015 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
@@ -4188,8 +4352,8 @@ func_mode_install ()
4188 case $nonopt in *shtool*) :;; *) false;; esac4352 case $nonopt in *shtool*) :;; *) false;; esac
4189 then4353 then
4190 # Aesthetically quote it.4354 # Aesthetically quote it.
4191 func_quote_for_eval "$nonopt"4355 func_quote_arg pretty "$nonopt"
4192 install_prog="$func_quote_for_eval_result "4356 install_prog="$func_quote_arg_result "
4193 arg=$14357 arg=$1
4194 shift4358 shift
4195 else4359 else
@@ -4199,8 +4363,8 @@ func_mode_install ()
41994363
4200 # The real first argument should be the name of the installation program.4364 # The real first argument should be the name of the installation program.
4201 # Aesthetically quote it.4365 # Aesthetically quote it.
4202 func_quote_for_eval "$arg"4366 func_quote_arg pretty "$arg"
4203 func_append install_prog "$func_quote_for_eval_result"4367 func_append install_prog "$func_quote_arg_result"
4204 install_shared_prog=$install_prog4368 install_shared_prog=$install_prog
4205 case " $install_prog " in4369 case " $install_prog " in
4206 *[\\\ /]cp\ *) install_cp=: ;;4370 *[\\\ /]cp\ *) install_cp=: ;;
@@ -4257,12 +4421,12 @@ func_mode_install ()
4257 esac4421 esac
42584422
4259 # Aesthetically quote the argument.4423 # Aesthetically quote the argument.
4260 func_quote_for_eval "$arg"4424 func_quote_arg pretty "$arg"
4261 func_append install_prog " $func_quote_for_eval_result"4425 func_append install_prog " $func_quote_arg_result"
4262 if test -n "$arg2"; then4426 if test -n "$arg2"; then
4263 func_quote_for_eval "$arg2"4427 func_quote_arg pretty "$arg2"
4264 fi4428 fi
4265 func_append install_shared_prog " $func_quote_for_eval_result"4429 func_append install_shared_prog " $func_quote_arg_result"
4266 done4430 done
42674431
4268 test -z "$install_prog" && \4432 test -z "$install_prog" && \
@@ -4273,8 +4437,8 @@ func_mode_install ()
42734437
4274 if test -n "$install_override_mode" && $no_mode; then4438 if test -n "$install_override_mode" && $no_mode; then
4275 if $install_cp; then :; else4439 if $install_cp; then :; else
4276 func_quote_for_eval "$install_override_mode"4440 func_quote_arg pretty "$install_override_mode"
4277 func_append install_shared_prog " -m $func_quote_for_eval_result"4441 func_append install_shared_prog " -m $func_quote_arg_result"
4278 fi4442 fi
4279 fi4443 fi
42804444
@@ -4570,8 +4734,8 @@ func_mode_install ()
4570 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`4734 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
45714735
4572 $opt_quiet || {4736 $opt_quiet || {
4573 func_quote_for_expand "$relink_command"4737 func_quote_arg expand,pretty "$relink_command"
4574 eval "func_echo $func_quote_for_expand_result"4738 eval "func_echo $func_quote_arg_result"
4575 }4739 }
4576 if eval "$relink_command"; then :4740 if eval "$relink_command"; then :
4577 else4741 else
@@ -5350,7 +5514,8 @@ else
5350 if test \"\$libtool_execute_magic\" != \"$magic\"; then5514 if test \"\$libtool_execute_magic\" != \"$magic\"; then
5351 file=\"\$0\""5515 file=\"\$0\""
53525516
5353 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`5517 func_quote_arg pretty "$ECHO"
5518 qECHO=$func_quote_arg_result
5354 $ECHO "\5519 $ECHO "\
53555520
5356# A function that is used when there is no print builtin or printf.5521# A function that is used when there is no print builtin or printf.
@@ -5360,7 +5525,7 @@ func_fallback_echo ()
5360\$15525\$1
5361_LTECHO_EOF'5526_LTECHO_EOF'
5362}5527}
5363 ECHO=\"$qECHO\"5528 ECHO=$qECHO
5364 fi5529 fi
53655530
5366# Very basic option parsing. These options are (a) specific to5531# Very basic option parsing. These options are (a) specific to
@@ -6703,9 +6868,9 @@ func_mode_link ()
6703 while test "$#" -gt 0; do6868 while test "$#" -gt 0; do
6704 arg=$16869 arg=$1
6705 shift6870 shift
6706 func_quote_for_eval "$arg"6871 func_quote_arg pretty,unquoted "$arg"
6707 qarg=$func_quote_for_eval_unquoted_result6872 qarg=$func_quote_arg_unquoted_result
6708 func_append libtool_args " $func_quote_for_eval_result"6873 func_append libtool_args " $func_quote_arg_result"
67096874
6710 # If the previous option needs an argument, assign it.6875 # If the previous option needs an argument, assign it.
6711 if test -n "$prev"; then6876 if test -n "$prev"; then
@@ -6941,6 +7106,13 @@ func_mode_link ()
6941 prev=7106 prev=
6942 continue7107 continue
6943 ;;7108 ;;
7109 xassembler)
7110 func_append compiler_flags " -Xassembler $qarg"
7111 prev=
7112 func_append compile_command " -Xassembler $qarg"
7113 func_append finalize_command " -Xassembler $qarg"
7114 continue
7115 ;;
6944 xcclinker)7116 xcclinker)
6945 func_append linker_flags " $qarg"7117 func_append linker_flags " $qarg"
6946 func_append compiler_flags " $qarg"7118 func_append compiler_flags " $qarg"
@@ -7111,7 +7283,7 @@ func_mode_link ()
7111 # These systems don't actually have a C library (as such)7283 # These systems don't actually have a C library (as such)
7112 test X-lc = "X$arg" && continue7284 test X-lc = "X$arg" && continue
7113 ;;7285 ;;
7114 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)7286 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
7115 # Do not include libc due to us having libc/libc_r.7287 # Do not include libc due to us having libc/libc_r.
7116 test X-lc = "X$arg" && continue7288 test X-lc = "X$arg" && continue
7117 ;;7289 ;;
@@ -7131,7 +7303,7 @@ func_mode_link ()
7131 esac7303 esac
7132 elif test X-lc_r = "X$arg"; then7304 elif test X-lc_r = "X$arg"; then
7133 case $host in7305 case $host in
7134 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)7306 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
7135 # Do not include libc_r directly, use -pthread flag.7307 # Do not include libc_r directly, use -pthread flag.
7136 continue7308 continue
7137 ;;7309 ;;
@@ -7161,8 +7333,20 @@ func_mode_link ()
7161 prev=xcompiler7333 prev=xcompiler
7162 continue7334 continue
7163 ;;7335 ;;
71647336 # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
7165 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \7337 -pthread)
7338 case $host in
7339 *solaris2*) ;;
7340 *)
7341 case "$new_inherited_linker_flags " in
7342 *" $arg "*) ;;
7343 * ) func_append new_inherited_linker_flags " $arg" ;;
7344 esac
7345 ;;
7346 esac
7347 continue
7348 ;;
7349 -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
7166 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)7350 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7167 func_append compiler_flags " $arg"7351 func_append compiler_flags " $arg"
7168 func_append compile_command " $arg"7352 func_append compile_command " $arg"
@@ -7303,9 +7487,9 @@ func_mode_link ()
7303 save_ifs=$IFS; IFS=,7487 save_ifs=$IFS; IFS=,
7304 for flag in $args; do7488 for flag in $args; do
7305 IFS=$save_ifs7489 IFS=$save_ifs
7306 func_quote_for_eval "$flag"7490 func_quote_arg pretty "$flag"
7307 func_append arg " $func_quote_for_eval_result"7491 func_append arg " $func_quote_arg_result"
7308 func_append compiler_flags " $func_quote_for_eval_result"7492 func_append compiler_flags " $func_quote_arg_result"
7309 done7493 done
7310 IFS=$save_ifs7494 IFS=$save_ifs
7311 func_stripname ' ' '' "$arg"7495 func_stripname ' ' '' "$arg"
@@ -7319,16 +7503,21 @@ func_mode_link ()
7319 save_ifs=$IFS; IFS=,7503 save_ifs=$IFS; IFS=,
7320 for flag in $args; do7504 for flag in $args; do
7321 IFS=$save_ifs7505 IFS=$save_ifs
7322 func_quote_for_eval "$flag"7506 func_quote_arg pretty "$flag"
7323 func_append arg " $wl$func_quote_for_eval_result"7507 func_append arg " $wl$func_quote_arg_result"
7324 func_append compiler_flags " $wl$func_quote_for_eval_result"7508 func_append compiler_flags " $wl$func_quote_arg_result"
7325 func_append linker_flags " $func_quote_for_eval_result"7509 func_append linker_flags " $func_quote_arg_result"
7326 done7510 done
7327 IFS=$save_ifs7511 IFS=$save_ifs
7328 func_stripname ' ' '' "$arg"7512 func_stripname ' ' '' "$arg"
7329 arg=$func_stripname_result7513 arg=$func_stripname_result
7330 ;;7514 ;;
73317515
7516 -Xassembler)
7517 prev=xassembler
7518 continue
7519 ;;
7520
7332 -Xcompiler)7521 -Xcompiler)
7333 prev=xcompiler7522 prev=xcompiler
7334 continue7523 continue
@@ -7346,8 +7535,8 @@ func_mode_link ()
73467535
7347 # -msg_* for osf cc7536 # -msg_* for osf cc
7348 -msg_*)7537 -msg_*)
7349 func_quote_for_eval "$arg"7538 func_quote_arg pretty "$arg"
7350 arg=$func_quote_for_eval_result7539 arg=$func_quote_arg_result
7351 ;;7540 ;;
73527541
7353 # Flags to be passed through unchanged, with rationale:7542 # Flags to be passed through unchanged, with rationale:
@@ -7368,14 +7557,13 @@ func_mode_link ()
7368 # -stdlib=* select c++ std lib with clang7557 # -stdlib=* select c++ std lib with clang
7369 # -fsanitize=* Clang/GCC memory and address sanitizer7558 # -fsanitize=* Clang/GCC memory and address sanitizer
7370 # -fuse-ld=* Linker select flags for GCC7559 # -fuse-ld=* Linker select flags for GCC
7371 # -static-* direct GCC to link specific libraries statically7560 # -Wa,* Pass flags directly to the assembler
7372 # -fcilkplus Cilk Plus language extension features for C/C++
7373 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \7561 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
7374 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \7562 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
7375 -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \7563 -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
7376 -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus)7564 -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
7377 func_quote_for_eval "$arg"7565 func_quote_arg pretty "$arg"
7378 arg=$func_quote_for_eval_result7566 arg=$func_quote_arg_result
7379 func_append compile_command " $arg"7567 func_append compile_command " $arg"
7380 func_append finalize_command " $arg"7568 func_append finalize_command " $arg"
7381 func_append compiler_flags " $arg"7569 func_append compiler_flags " $arg"
@@ -7396,15 +7584,15 @@ func_mode_link ()
7396 continue7584 continue
7397 else7585 else
7398 # Otherwise treat like 'Some other compiler flag' below7586 # Otherwise treat like 'Some other compiler flag' below
7399 func_quote_for_eval "$arg"7587 func_quote_arg pretty "$arg"
7400 arg=$func_quote_for_eval_result7588 arg=$func_quote_arg_result
7401 fi7589 fi
7402 ;;7590 ;;
74037591
7404 # Some other compiler flag.7592 # Some other compiler flag.
7405 -* | +*)7593 -* | +*)
7406 func_quote_for_eval "$arg"7594 func_quote_arg pretty "$arg"
7407 arg=$func_quote_for_eval_result7595 arg=$func_quote_arg_result
7408 ;;7596 ;;
74097597
7410 *.$objext)7598 *.$objext)
@@ -7524,8 +7712,8 @@ func_mode_link ()
7524 *)7712 *)
7525 # Unknown arguments in both finalize_command and compile_command need7713 # Unknown arguments in both finalize_command and compile_command need
7526 # to be aesthetically quoted because they are evaled later.7714 # to be aesthetically quoted because they are evaled later.
7527 func_quote_for_eval "$arg"7715 func_quote_arg pretty "$arg"
7528 arg=$func_quote_for_eval_result7716 arg=$func_quote_arg_result
7529 ;;7717 ;;
7530 esac # arg7718 esac # arg
75317719
@@ -7666,10 +7854,7 @@ func_mode_link ()
7666 case $pass in7854 case $pass in
7667 dlopen) libs=$dlfiles ;;7855 dlopen) libs=$dlfiles ;;
7668 dlpreopen) libs=$dlprefiles ;;7856 dlpreopen) libs=$dlprefiles ;;
7669 link)7857 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
7670 libs="$deplibs %DEPLIBS%"
7671 test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
7672 ;;
7673 esac7858 esac
7674 fi7859 fi
7675 if test lib,dlpreopen = "$linkmode,$pass"; then7860 if test lib,dlpreopen = "$linkmode,$pass"; then
@@ -7988,19 +8173,19 @@ func_mode_link ()
7988 # It is a libtool convenience library, so add in its objects.8173 # It is a libtool convenience library, so add in its objects.
7989 func_append convenience " $ladir/$objdir/$old_library"8174 func_append convenience " $ladir/$objdir/$old_library"
7990 func_append old_convenience " $ladir/$objdir/$old_library"8175 func_append old_convenience " $ladir/$objdir/$old_library"
7991 tmp_libs=
7992 for deplib in $dependency_libs; do
7993 deplibs="$deplib $deplibs"
7994 if $opt_preserve_dup_deps; then
7995 case "$tmp_libs " in
7996 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
7997 esac
7998 fi
7999 func_append tmp_libs " $deplib"
8000 done
8001 elif test prog != "$linkmode" && test lib != "$linkmode"; then8176 elif test prog != "$linkmode" && test lib != "$linkmode"; then
8002 func_fatal_error "'$lib' is not a convenience library"8177 func_fatal_error "'$lib' is not a convenience library"
8003 fi8178 fi
8179 tmp_libs=
8180 for deplib in $dependency_libs; do
8181 deplibs="$deplib $deplibs"
8182 if $opt_preserve_dup_deps; then
8183 case "$tmp_libs " in
8184 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
8185 esac
8186 fi
8187 func_append tmp_libs " $deplib"
8188 done
8004 continue8189 continue
8005 fi # $pass = conv8190 fi # $pass = conv
80068191
@@ -8733,7 +8918,7 @@ func_mode_link ()
8733 test CXX = "$tagname" && {8918 test CXX = "$tagname" && {
8734 case $host_os in8919 case $host_os in
8735 linux*)8920 linux*)
8736 case `$CC -V 2>&1 | sed 5q` in8921 case `$CC -V 2>&1 | $SED 5q` in
8737 *Sun\ C*) # Sun C++ 5.98922 *Sun\ C*) # Sun C++ 5.9
8738 func_suncc_cstd_abi8923 func_suncc_cstd_abi
87398924
@@ -8906,7 +9091,7 @@ func_mode_link ()
8906 #9091 #
8907 case $version_type in9092 case $version_type in
8908 # correct linux to gnu/linux during the next big refactor9093 # correct linux to gnu/linux during the next big refactor
8909 darwin|freebsd-elf|linux|osf|windows|none)9094 darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
8910 func_arith $number_major + $number_minor9095 func_arith $number_major + $number_minor
8911 current=$func_arith_result9096 current=$func_arith_result
8912 age=$number_minor9097 age=$number_minor
@@ -8924,9 +9109,6 @@ func_mode_link ()
8924 revision=$number_minor9109 revision=$number_minor
8925 lt_irix_increment=no9110 lt_irix_increment=no
8926 ;;9111 ;;
8927 *)
8928 func_fatal_configuration "$modename: unknown library version type '$version_type'"
8929 ;;
8930 esac9112 esac
8931 ;;9113 ;;
8932 no)9114 no)
@@ -9000,7 +9182,7 @@ func_mode_link ()
9000 versuffix=.$current.$revision9182 versuffix=.$current.$revision
9001 ;;9183 ;;
90029184
9003 freebsd-elf)9185 freebsd-elf | midnightbsd-elf)
9004 func_arith $current - $age9186 func_arith $current - $age
9005 major=.$func_arith_result9187 major=.$func_arith_result
9006 versuffix=$major.$age.$revision9188 versuffix=$major.$age.$revision
@@ -9226,7 +9408,7 @@ func_mode_link ()
9226 *-*-netbsd*)9408 *-*-netbsd*)
9227 # Don't link with libc until the a.out ld.so is fixed.9409 # Don't link with libc until the a.out ld.so is fixed.
9228 ;;9410 ;;
9229 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)9411 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
9230 # Do not include libc due to us having libc/libc_r.9412 # Do not include libc due to us having libc/libc_r.
9231 ;;9413 ;;
9232 *-*-sco3.2v5* | *-*-sco5v6*)9414 *-*-sco3.2v5* | *-*-sco5v6*)
@@ -10037,8 +10219,8 @@ EOF
10037 for cmd in $concat_cmds; do10219 for cmd in $concat_cmds; do
10038 IFS=$save_ifs10220 IFS=$save_ifs
10039 $opt_quiet || {10221 $opt_quiet || {
10040 func_quote_for_expand "$cmd"10222 func_quote_arg expand,pretty "$cmd"
10041 eval "func_echo $func_quote_for_expand_result"10223 eval "func_echo $func_quote_arg_result"
10042 }10224 }
10043 $opt_dry_run || eval "$cmd" || {10225 $opt_dry_run || eval "$cmd" || {
10044 lt_exit=$?10226 lt_exit=$?
@@ -10131,8 +10313,8 @@ EOF
10131 eval cmd=\"$cmd\"10313 eval cmd=\"$cmd\"
10132 IFS=$save_ifs10314 IFS=$save_ifs
10133 $opt_quiet || {10315 $opt_quiet || {
10134 func_quote_for_expand "$cmd"10316 func_quote_arg expand,pretty "$cmd"
10135 eval "func_echo $func_quote_for_expand_result"10317 eval "func_echo $func_quote_arg_result"
10136 }10318 }
10137 $opt_dry_run || eval "$cmd" || {10319 $opt_dry_run || eval "$cmd" || {
10138 lt_exit=$?10320 lt_exit=$?
@@ -10606,12 +10788,13 @@ EOF
10606 elif eval var_value=\$$var; test -z "$var_value"; then10788 elif eval var_value=\$$var; test -z "$var_value"; then
10607 relink_command="$var=; export $var; $relink_command"10789 relink_command="$var=; export $var; $relink_command"
10608 else10790 else
10609 func_quote_for_eval "$var_value"10791 func_quote_arg pretty "$var_value"
10610 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"10792 relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
10611 fi10793 fi
10612 done10794 done
10613 relink_command="(cd `pwd`; $relink_command)"10795 func_quote eval cd "`pwd`"
10614 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`10796 func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
10797 relink_command=$func_quote_arg_unquoted_result
10615 fi10798 fi
1061610799
10617 # Only actually do things if not in dry run mode.10800 # Only actually do things if not in dry run mode.
@@ -10851,13 +11034,15 @@ EOF
10851 elif eval var_value=\$$var; test -z "$var_value"; then11034 elif eval var_value=\$$var; test -z "$var_value"; then
10852 relink_command="$var=; export $var; $relink_command"11035 relink_command="$var=; export $var; $relink_command"
10853 else11036 else
10854 func_quote_for_eval "$var_value"11037 func_quote_arg pretty,unquoted "$var_value"
10855 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"11038 relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
10856 fi11039 fi
10857 done11040 done
10858 # Quote the link command for shipping.11041 # Quote the link command for shipping.
10859 relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"11042 func_quote eval cd "`pwd`"
10860 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`11043 relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
11044 func_quote_arg pretty,unquoted "$relink_command"
11045 relink_command=$func_quote_arg_unquoted_result
10861 if test yes = "$hardcode_automatic"; then11046 if test yes = "$hardcode_automatic"; then
10862 relink_command=11047 relink_command=
10863 fi11048 fi
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index c4c0294..79a2451 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1,6 +1,7 @@
1# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-1# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
2#2#
3# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.3# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
4# Foundation, Inc.
4# Written by Gordon Matzigkeit, 19965# Written by Gordon Matzigkeit, 1996
5#6#
6# This file is free software; the Free Software Foundation gives7# This file is free software; the Free Software Foundation gives
@@ -31,7 +32,7 @@ m4_define([_LT_COPYING], [dnl
31# along with this program. If not, see <http://www.gnu.org/licenses/>.32# along with this program. If not, see <http://www.gnu.org/licenses/>.
32])33])
3334
34# serial 58 LT_INIT35# serial 59 LT_INIT
3536
3637
37# LT_PREREQ(VERSION)38# LT_PREREQ(VERSION)
@@ -181,6 +182,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
181m4_require([_LT_CHECK_SHELL_FEATURES])dnl182m4_require([_LT_CHECK_SHELL_FEATURES])dnl
182m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl183m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
183m4_require([_LT_CMD_RELOAD])dnl184m4_require([_LT_CMD_RELOAD])dnl
185m4_require([_LT_DECL_FILECMD])dnl
184m4_require([_LT_CHECK_MAGIC_METHOD])dnl186m4_require([_LT_CHECK_MAGIC_METHOD])dnl
185m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl187m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
186m4_require([_LT_CMD_OLD_ARCHIVE])dnl188m4_require([_LT_CMD_OLD_ARCHIVE])dnl
@@ -219,8 +221,8 @@ esac
219ofile=libtool221ofile=libtool
220can_build_shared=yes222can_build_shared=yes
221223
222# All known linkers require a '.a' archive for static linking (except MSVC,224# All known linkers require a '.a' archive for static linking (except MSVC and
223# which needs '.lib').225# ICC, which need '.lib').
224libext=a226libext=a
225227
226with_gnu_ld=$lt_cv_prog_gnu_ld228with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -728,6 +730,7 @@ _LT_CONFIG_SAVE_COMMANDS([
728 cat <<_LT_EOF >> "$cfgfile"730 cat <<_LT_EOF >> "$cfgfile"
729#! $SHELL731#! $SHELL
730# Generated automatically by $as_me ($PACKAGE) $VERSION732# Generated automatically by $as_me ($PACKAGE) $VERSION
733# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
731# NOTE: Changes made to this file will be lost: look at ltmain.sh.734# NOTE: Changes made to this file will be lost: look at ltmain.sh.
732735
733# Provide generalized library-building support services.736# Provide generalized library-building support services.
@@ -777,7 +780,7 @@ _LT_EOF
777 # if finds mixed CR/LF and LF-only lines. Since sed operates in780 # if finds mixed CR/LF and LF-only lines. Since sed operates in
778 # text mode, it properly converts lines to CR/LF. This bash problem781 # text mode, it properly converts lines to CR/LF. This bash problem
779 # is reportedly fixed, but why not run on old versions too?782 # is reportedly fixed, but why not run on old versions too?
780 sed '$q' "$ltmain" >> "$cfgfile" \783 $SED '$q' "$ltmain" >> "$cfgfile" \
781 || (rm -f "$cfgfile"; exit 1)784 || (rm -f "$cfgfile"; exit 1)
782785
783 mv -f "$cfgfile" "$ofile" ||786 mv -f "$cfgfile" "$ofile" ||
@@ -1041,8 +1044,8 @@ int forced_loaded() { return 2;}
1041_LT_EOF1044_LT_EOF
1042 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD1045 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
1043 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD1046 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
1044 echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD1047 echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
1045 $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD1048 $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
1046 echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD1049 echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
1047 $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD1050 $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
1048 cat > conftest.c << _LT_EOF1051 cat > conftest.c << _LT_EOF
@@ -1066,17 +1069,12 @@ _LT_EOF
1066 _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;1069 _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
1067 darwin1.*)1070 darwin1.*)
1068 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;1071 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1069 darwin*) # darwin 5.x on1072 darwin*)
1070 # if running on 10.5 or later, the deployment target defaults1073 case $MACOSX_DEPLOYMENT_TARGET,$host in
1071 # to the OS version, if on x86, and 10.4, the deployment1074 10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
1072 # target defaults to 10.4. Don't you love it?1075 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1073 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in1076 *)
1074 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*)1077 _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1075 _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1076 10.[[012]][[,.]]*)
1077 _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1078 10.*|11.*)
1079 _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1080 esac1078 esac
1081 ;;1079 ;;
1082 esac1080 esac
@@ -1125,12 +1123,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
1125 output_verbose_link_cmd=func_echo_all1123 output_verbose_link_cmd=func_echo_all
1126 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"1124 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
1127 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"1125 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
1128 _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"1126 _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
1129 _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"1127 _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
1130 m4_if([$1], [CXX],1128 m4_if([$1], [CXX],
1131[ if test yes != "$lt_cv_apple_cc_single_mod"; then1129[ if test yes != "$lt_cv_apple_cc_single_mod"; then
1132 _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"1130 _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
1133 _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"1131 _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
1134 fi1132 fi
1135],[])1133],[])
1136 else1134 else
@@ -1244,7 +1242,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
1244# _LT_WITH_SYSROOT1242# _LT_WITH_SYSROOT
1245# ----------------1243# ----------------
1246AC_DEFUN([_LT_WITH_SYSROOT],1244AC_DEFUN([_LT_WITH_SYSROOT],
1247[AC_MSG_CHECKING([for sysroot])1245[m4_require([_LT_DECL_SED])dnl
1246AC_MSG_CHECKING([for sysroot])
1248AC_ARG_WITH([sysroot],1247AC_ARG_WITH([sysroot],
1249[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],1248[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1250 [Search for dependent libraries within DIR (or the compiler's sysroot1249 [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -1261,7 +1260,7 @@ case $with_sysroot in #(
1261 fi1260 fi
1262 ;; #(1261 ;; #(
1263 /*)1262 /*)
1264 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`1263 lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
1265 ;; #(1264 ;; #(
1266 no|'')1265 no|'')
1267 ;; #(1266 ;; #(
@@ -1291,7 +1290,7 @@ ia64-*-hpux*)
1291 # options accordingly.1290 # options accordingly.
1292 echo 'int i;' > conftest.$ac_ext1291 echo 'int i;' > conftest.$ac_ext
1293 if AC_TRY_EVAL(ac_compile); then1292 if AC_TRY_EVAL(ac_compile); then
1294 case `/usr/bin/file conftest.$ac_objext` in1293 case `$FILECMD conftest.$ac_objext` in
1295 *ELF-32*)1294 *ELF-32*)
1296 HPUX_IA64_MODE=321295 HPUX_IA64_MODE=32
1297 ;;1296 ;;
@@ -1308,7 +1307,7 @@ ia64-*-hpux*)
1308 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext1307 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1309 if AC_TRY_EVAL(ac_compile); then1308 if AC_TRY_EVAL(ac_compile); then
1310 if test yes = "$lt_cv_prog_gnu_ld"; then1309 if test yes = "$lt_cv_prog_gnu_ld"; then
1311 case `/usr/bin/file conftest.$ac_objext` in1310 case `$FILECMD conftest.$ac_objext` in
1312 *32-bit*)1311 *32-bit*)
1313 LD="${LD-ld} -melf32bsmip"1312 LD="${LD-ld} -melf32bsmip"
1314 ;;1313 ;;
@@ -1320,7 +1319,7 @@ ia64-*-hpux*)
1320 ;;1319 ;;
1321 esac1320 esac
1322 else1321 else
1323 case `/usr/bin/file conftest.$ac_objext` in1322 case `$FILECMD conftest.$ac_objext` in
1324 *32-bit*)1323 *32-bit*)
1325 LD="${LD-ld} -32"1324 LD="${LD-ld} -32"
1326 ;;1325 ;;
@@ -1342,7 +1341,7 @@ mips64*-*linux*)
1342 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext1341 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1343 if AC_TRY_EVAL(ac_compile); then1342 if AC_TRY_EVAL(ac_compile); then
1344 emul=elf1343 emul=elf
1345 case `/usr/bin/file conftest.$ac_objext` in1344 case `$FILECMD conftest.$ac_objext` in
1346 *32-bit*)1345 *32-bit*)
1347 emul="${emul}32"1346 emul="${emul}32"
1348 ;;1347 ;;
@@ -1350,7 +1349,7 @@ mips64*-*linux*)
1350 emul="${emul}64"1349 emul="${emul}64"
1351 ;;1350 ;;
1352 esac1351 esac
1353 case `/usr/bin/file conftest.$ac_objext` in1352 case `$FILECMD conftest.$ac_objext` in
1354 *MSB*)1353 *MSB*)
1355 emul="${emul}btsmip"1354 emul="${emul}btsmip"
1356 ;;1355 ;;
@@ -1358,7 +1357,7 @@ mips64*-*linux*)
1358 emul="${emul}ltsmip"1357 emul="${emul}ltsmip"
1359 ;;1358 ;;
1360 esac1359 esac
1361 case `/usr/bin/file conftest.$ac_objext` in1360 case `$FILECMD conftest.$ac_objext` in
1362 *N32*)1361 *N32*)
1363 emul="${emul}n32"1362 emul="${emul}n32"
1364 ;;1363 ;;
@@ -1378,14 +1377,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
1378 # not appear in the list.1377 # not appear in the list.
1379 echo 'int i;' > conftest.$ac_ext1378 echo 'int i;' > conftest.$ac_ext
1380 if AC_TRY_EVAL(ac_compile); then1379 if AC_TRY_EVAL(ac_compile); then
1381 case `/usr/bin/file conftest.o` in1380 case `$FILECMD conftest.o` in
1382 *32-bit*)1381 *32-bit*)
1383 case $host in1382 case $host in
1384 x86_64-*kfreebsd*-gnu)1383 x86_64-*kfreebsd*-gnu)
1385 LD="${LD-ld} -m elf_i386_fbsd"1384 LD="${LD-ld} -m elf_i386_fbsd"
1386 ;;1385 ;;
1387 x86_64-*linux*)1386 x86_64-*linux*)
1388 case `/usr/bin/file conftest.o` in1387 case `$FILECMD conftest.o` in
1389 *x86-64*)1388 *x86-64*)
1390 LD="${LD-ld} -m elf32_x86_64"1389 LD="${LD-ld} -m elf32_x86_64"
1391 ;;1390 ;;
@@ -1453,7 +1452,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
1453 # options accordingly.1452 # options accordingly.
1454 echo 'int i;' > conftest.$ac_ext1453 echo 'int i;' > conftest.$ac_ext
1455 if AC_TRY_EVAL(ac_compile); then1454 if AC_TRY_EVAL(ac_compile); then
1456 case `/usr/bin/file conftest.o` in1455 case `$FILECMD conftest.o` in
1457 *64-bit*)1456 *64-bit*)
1458 case $lt_cv_prog_gnu_ld in1457 case $lt_cv_prog_gnu_ld in
1459 yes*)1458 yes*)
@@ -1492,9 +1491,22 @@ need_locks=$enable_libtool_lock
1492m4_defun([_LT_PROG_AR],1491m4_defun([_LT_PROG_AR],
1493[AC_CHECK_TOOLS(AR, [ar], false)1492[AC_CHECK_TOOLS(AR, [ar], false)
1494: ${AR=ar}1493: ${AR=ar}
1495: ${AR_FLAGS=cr}
1496_LT_DECL([], [AR], [1], [The archiver])1494_LT_DECL([], [AR], [1], [The archiver])
1497_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])1495
1496# Use ARFLAGS variable as AR's operation code to sync the variable naming with
1497# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
1498# higher priority because thats what people were doing historically (setting
1499# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
1500# variable obsoleted/removed.
1501
1502test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
1503lt_ar_flags=$AR_FLAGS
1504_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
1505
1506# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
1507# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
1508_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
1509 [Flags to create an archive])
14981510
1499AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],1511AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
1500 [lt_cv_ar_at_file=no1512 [lt_cv_ar_at_file=no
@@ -1713,7 +1725,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1713 lt_cv_sys_max_cmd_len=8192;1725 lt_cv_sys_max_cmd_len=8192;
1714 ;;1726 ;;
17151727
1716 bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)1728 bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
1717 # This has been around since 386BSD, at least. Likely further.1729 # This has been around since 386BSD, at least. Likely further.
1718 if test -x /sbin/sysctl; then1730 if test -x /sbin/sysctl; then
1719 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`1731 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1756,7 +1768,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1756 sysv5* | sco5v6* | sysv4.2uw2*)1768 sysv5* | sco5v6* | sysv4.2uw2*)
1757 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`1769 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
1758 if test -n "$kargmax"; then1770 if test -n "$kargmax"; then
1759 lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`1771 lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'`
1760 else1772 else
1761 lt_cv_sys_max_cmd_len=327681773 lt_cv_sys_max_cmd_len=32768
1762 fi1774 fi
@@ -2206,26 +2218,35 @@ m4_defun([_LT_CMD_STRIPLIB],
2206striplib=2218striplib=
2207old_striplib=2219old_striplib=
2208AC_MSG_CHECKING([whether stripping libraries is possible])2220AC_MSG_CHECKING([whether stripping libraries is possible])
2209if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then2221if test -z "$STRIP"; then
2210 test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"2222 AC_MSG_RESULT([no])
2211 test -z "$striplib" && striplib="$STRIP --strip-unneeded"
2212 AC_MSG_RESULT([yes])
2213else2223else
2214# FIXME - insert some real tests, host_os isn't really good enough2224 if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
2215 case $host_os in2225 old_striplib="$STRIP --strip-debug"
2216 darwin*)2226 striplib="$STRIP --strip-unneeded"
2217 if test -n "$STRIP"; then2227 AC_MSG_RESULT([yes])
2228 else
2229 case $host_os in
2230 darwin*)
2231 # FIXME - insert some real tests, host_os isn't really good enough
2218 striplib="$STRIP -x"2232 striplib="$STRIP -x"
2219 old_striplib="$STRIP -S"2233 old_striplib="$STRIP -S"
2220 AC_MSG_RESULT([yes])2234 AC_MSG_RESULT([yes])
2221 else2235 ;;
2236 freebsd*)
2237 if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
2238 old_striplib="$STRIP --strip-debug"
2239 striplib="$STRIP --strip-unneeded"
2240 AC_MSG_RESULT([yes])
2241 else
2242 AC_MSG_RESULT([no])
2243 fi
2244 ;;
2245 *)
2222 AC_MSG_RESULT([no])2246 AC_MSG_RESULT([no])
2223 fi2247 ;;
2224 ;;2248 esac
2225 *)2249 fi
2226 AC_MSG_RESULT([no])
2227 ;;
2228 esac
2229fi2250fi
2230_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])2251_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
2231_LT_DECL([], [striplib], [1])2252_LT_DECL([], [striplib], [1])
@@ -2548,7 +2569,7 @@ cygwin* | mingw* | pw32* | cegcc*)
2548 case $host_os in2569 case $host_os in
2549 cygwin*)2570 cygwin*)
2550 # Cygwin DLLs use 'cyg' prefix rather than 'lib'2571 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
2551 soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'2572 soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2552m4_if([$1], [],[2573m4_if([$1], [],[
2553 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])2574 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
2554 ;;2575 ;;
@@ -2558,14 +2579,14 @@ m4_if([$1], [],[
2558 ;;2579 ;;
2559 pw32*)2580 pw32*)
2560 # pw32 DLLs use 'pw' prefix rather than 'lib'2581 # pw32 DLLs use 'pw' prefix rather than 'lib'
2561 library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'2582 library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2562 ;;2583 ;;
2563 esac2584 esac
2564 dynamic_linker='Win32 ld.exe'2585 dynamic_linker='Win32 ld.exe'
2565 ;;2586 ;;
25662587
2567 *,cl*)2588 *,cl* | *,icl*)
2568 # Native MSVC2589 # Native MSVC or ICC
2569 libname_spec='$name'2590 libname_spec='$name'
2570 soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'2591 soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2571 library_names_spec='$libname.dll.lib'2592 library_names_spec='$libname.dll.lib'
@@ -2584,7 +2605,7 @@ m4_if([$1], [],[
2584 done2605 done
2585 IFS=$lt_save_ifs2606 IFS=$lt_save_ifs
2586 # Convert to MSYS style.2607 # Convert to MSYS style.
2587 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`2608 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2588 ;;2609 ;;
2589 cygwin*)2610 cygwin*)
2590 # Convert to unix form, then to dos form, then back to unix form2611 # Convert to unix form, then to dos form, then back to unix form
@@ -2621,7 +2642,7 @@ m4_if([$1], [],[
2621 ;;2642 ;;
26222643
2623 *)2644 *)
2624 # Assume MSVC wrapper2645 # Assume MSVC and ICC wrapper
2625 library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'2646 library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
2626 dynamic_linker='Win32 ld.exe'2647 dynamic_linker='Win32 ld.exe'
2627 ;;2648 ;;
@@ -2654,7 +2675,7 @@ dgux*)
2654 shlibpath_var=LD_LIBRARY_PATH2675 shlibpath_var=LD_LIBRARY_PATH
2655 ;;2676 ;;
26562677
2657freebsd* | dragonfly*)2678freebsd* | dragonfly* | midnightbsd*)
2658 # DragonFly does not have aout. When/if they implement a new2679 # DragonFly does not have aout. When/if they implement a new
2659 # versioning mechanism, adjust this.2680 # versioning mechanism, adjust this.
2660 if test -x /usr/bin/objformat; then2681 if test -x /usr/bin/objformat; then
@@ -2886,18 +2907,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
2886 dynamic_linker='GNU/Linux ld.so'2907 dynamic_linker='GNU/Linux ld.so'
2887 ;;2908 ;;
28882909
2889netbsdelf*-gnu)
2890 version_type=linux
2891 need_lib_prefix=no
2892 need_version=no
2893 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
2894 soname_spec='${libname}${release}${shared_ext}$major'
2895 shlibpath_var=LD_LIBRARY_PATH
2896 shlibpath_overrides_runpath=no
2897 hardcode_into_libs=yes
2898 dynamic_linker='NetBSD ld.elf_so'
2899 ;;
2900
2901netbsd*)2910netbsd*)
2902 version_type=sunos2911 version_type=sunos
2903 need_lib_prefix=no2912 need_lib_prefix=no
@@ -3465,7 +3474,7 @@ beos*)
34653474
3466bsdi[[45]]*)3475bsdi[[45]]*)
3467 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'3476 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
3468 lt_cv_file_magic_cmd='/usr/bin/file -L'3477 lt_cv_file_magic_cmd='$FILECMD -L'
3469 lt_cv_file_magic_test_file=/shlib/libc.so3478 lt_cv_file_magic_test_file=/shlib/libc.so
3470 ;;3479 ;;
34713480
@@ -3499,14 +3508,14 @@ darwin* | rhapsody*)
3499 lt_cv_deplibs_check_method=pass_all3508 lt_cv_deplibs_check_method=pass_all
3500 ;;3509 ;;
35013510
3502freebsd* | dragonfly*)3511freebsd* | dragonfly* | midnightbsd*)
3503 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then3512 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3504 case $host_cpu in3513 case $host_cpu in
3505 i*86 )3514 i*86 )
3506 # Not sure whether the presence of OpenBSD here was a mistake.3515 # Not sure whether the presence of OpenBSD here was a mistake.
3507 # Let's accept both of them until this is cleared up.3516 # Let's accept both of them until this is cleared up.
3508 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'3517 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
3509 lt_cv_file_magic_cmd=/usr/bin/file3518 lt_cv_file_magic_cmd=$FILECMD
3510 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`3519 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3511 ;;3520 ;;
3512 esac3521 esac
@@ -3520,7 +3529,7 @@ haiku*)
3520 ;;3529 ;;
35213530
3522hpux10.20* | hpux11*)3531hpux10.20* | hpux11*)
3523 lt_cv_file_magic_cmd=/usr/bin/file3532 lt_cv_file_magic_cmd=$FILECMD
3524 case $host_cpu in3533 case $host_cpu in
3525 ia64*)3534 ia64*)
3526 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'3535 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
@@ -3557,7 +3566,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
3557 lt_cv_deplibs_check_method=pass_all3566 lt_cv_deplibs_check_method=pass_all
3558 ;;3567 ;;
35593568
3560netbsd* | netbsdelf*-gnu)3569netbsd*)
3561 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then3570 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3562 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'3571 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
3563 else3572 else
@@ -3567,7 +3576,7 @@ netbsd* | netbsdelf*-gnu)
35673576
3568newos6*)3577newos6*)
3569 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'3578 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
3570 lt_cv_file_magic_cmd=/usr/bin/file3579 lt_cv_file_magic_cmd=$FILECMD
3571 lt_cv_file_magic_test_file=/usr/lib/libnls.so3580 lt_cv_file_magic_test_file=/usr/lib/libnls.so
3572 ;;3581 ;;
35733582
@@ -3694,13 +3703,13 @@ else
3694 mingw*) lt_bad_file=conftest.nm/nofile ;;3703 mingw*) lt_bad_file=conftest.nm/nofile ;;
3695 *) lt_bad_file=/dev/null ;;3704 *) lt_bad_file=/dev/null ;;
3696 esac3705 esac
3697 case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in3706 case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
3698 *$lt_bad_file* | *'Invalid file or object type'*)3707 *$lt_bad_file* | *'Invalid file or object type'*)
3699 lt_cv_path_NM="$tmp_nm -B"3708 lt_cv_path_NM="$tmp_nm -B"
3700 break 23709 break 2
3701 ;;3710 ;;
3702 *)3711 *)
3703 case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in3712 case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
3704 */dev/null*)3713 */dev/null*)
3705 lt_cv_path_NM="$tmp_nm -p"3714 lt_cv_path_NM="$tmp_nm -p"
3706 break 23715 break 2
@@ -3726,7 +3735,7 @@ else
3726 # Let the user override the test.3735 # Let the user override the test.
3727 else3736 else
3728 AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)3737 AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
3729 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in3738 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
3730 *COFF*)3739 *COFF*)
3731 DUMPBIN="$DUMPBIN -symbols -headers"3740 DUMPBIN="$DUMPBIN -symbols -headers"
3732 ;;3741 ;;
@@ -3966,7 +3975,7 @@ esac
39663975
3967if test "$lt_cv_nm_interface" = "MS dumpbin"; then3976if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3968 # Gets list of data symbols to import.3977 # Gets list of data symbols to import.
3969 lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"3978 lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
3970 # Adjust the below global symbol transforms to fixup imported variables.3979 # Adjust the below global symbol transforms to fixup imported variables.
3971 lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"3980 lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
3972 lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"3981 lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@@ -3984,20 +3993,20 @@ fi
3984# Transform an extracted symbol line into a proper C declaration.3993# Transform an extracted symbol line into a proper C declaration.
3985# Some systems (esp. on ia64) link data and code symbols differently,3994# Some systems (esp. on ia64) link data and code symbols differently,
3986# so use this general approach.3995# so use this general approach.
3987lt_cv_sys_global_symbol_to_cdecl="sed -n"\3996lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
3988$lt_cdecl_hook\3997$lt_cdecl_hook\
3989" -e 's/^T .* \(.*\)$/extern int \1();/p'"\3998" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
3990" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"3999" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
39914000
3992# Transform an extracted symbol line into symbol name and symbol address4001# Transform an extracted symbol line into symbol name and symbol address
3993lt_cv_sys_global_symbol_to_c_name_address="sed -n"\4002lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
3994$lt_c_name_hook\4003$lt_c_name_hook\
3995" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\4004" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
3996" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"4005" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
39974006
3998# Transform an extracted symbol line into symbol name with lib prefix and4007# Transform an extracted symbol line into symbol name with lib prefix and
3999# symbol address.4008# symbol address.
4000lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\4009lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
4001$lt_c_name_lib_hook\4010$lt_c_name_lib_hook\
4002" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\4011" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
4003" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\4012" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@@ -4021,7 +4030,7 @@ for ac_symprfx in "" "_"; do
4021 if test "$lt_cv_nm_interface" = "MS dumpbin"; then4030 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
4022 # Fake it for dumpbin and say T for any non-static function,4031 # Fake it for dumpbin and say T for any non-static function,
4023 # D for any global variable and I for any imported variable.4032 # D for any global variable and I for any imported variable.
4024 # Also find C++ and __fastcall symbols from MSVC++,4033 # Also find C++ and __fastcall symbols from MSVC++ or ICC,
4025 # which start with @ or ?.4034 # which start with @ or ?.
4026 lt_cv_sys_global_symbol_pipe="$AWK ['"\4035 lt_cv_sys_global_symbol_pipe="$AWK ['"\
4027" {last_section=section; section=\$ 3};"\4036" {last_section=section; section=\$ 3};"\
@@ -4039,9 +4048,9 @@ for ac_symprfx in "" "_"; do
4039" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\4048" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
4040" ' prfx=^$ac_symprfx]"4049" ' prfx=^$ac_symprfx]"
4041 else4050 else
4042 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"4051 lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
4043 fi4052 fi
4044 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"4053 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
40454054
4046 # Check to see that the pipe works correctly.4055 # Check to see that the pipe works correctly.
4047 pipe_works=no4056 pipe_works=no
@@ -4063,8 +4072,7 @@ _LT_EOF
4063 if AC_TRY_EVAL(ac_compile); then4072 if AC_TRY_EVAL(ac_compile); then
4064 # Now try to grab the symbols.4073 # Now try to grab the symbols.
4065 nlist=conftest.nm4074 nlist=conftest.nm
4066 $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD4075 if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
4067 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
4068 # Try sorting and uniquifying the output.4076 # Try sorting and uniquifying the output.
4069 if sort "$nlist" | uniq > "$nlist"T; then4077 if sort "$nlist" | uniq > "$nlist"T; then
4070 mv -f "$nlist"T "$nlist"4078 mv -f "$nlist"T "$nlist"
@@ -4329,7 +4337,7 @@ m4_if([$1], [CXX], [
4329 ;;4337 ;;
4330 esac4338 esac
4331 ;;4339 ;;
4332 freebsd* | dragonfly*)4340 freebsd* | dragonfly* | midnightbsd*)
4333 # FreeBSD uses GNU C++4341 # FreeBSD uses GNU C++
4334 ;;4342 ;;
4335 hpux9* | hpux10* | hpux11*)4343 hpux9* | hpux10* | hpux11*)
@@ -4412,7 +4420,7 @@ m4_if([$1], [CXX], [
4412 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'4420 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4413 ;;4421 ;;
4414 *)4422 *)
4415 case `$CC -V 2>&1 | sed 5q` in4423 case `$CC -V 2>&1 | $SED 5q` in
4416 *Sun\ C*)4424 *Sun\ C*)
4417 # Sun C++ 5.94425 # Sun C++ 5.9
4418 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'4426 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4436,7 +4444,7 @@ m4_if([$1], [CXX], [
4436 ;;4444 ;;
4437 esac4445 esac
4438 ;;4446 ;;
4439 netbsd* | netbsdelf*-gnu)4447 netbsd*)
4440 ;;4448 ;;
4441 *qnx* | *nto*)4449 *qnx* | *nto*)
4442 # QNX uses GNU C++, but need to define -shared option too, otherwise4450 # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4704,12 +4712,6 @@ m4_if([$1], [CXX], [
4704 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'4712 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4705 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'4713 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4706 ;;4714 ;;
4707 # flang / f18. f95 an alias for gfortran or flang on Debian
4708 flang* | f18* | f95*)
4709 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4710 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4711 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4712 ;;
4713 # icc used to be incompatible with GCC.4715 # icc used to be incompatible with GCC.
4714 # ICC 10 doesn't accept -KPIC any more.4716 # ICC 10 doesn't accept -KPIC any more.
4715 icc* | ifort*)4717 icc* | ifort*)
@@ -4754,7 +4756,7 @@ m4_if([$1], [CXX], [
4754 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'4756 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4755 ;;4757 ;;
4756 *)4758 *)
4757 case `$CC -V 2>&1 | sed 5q` in4759 case `$CC -V 2>&1 | $SED 5q` in
4758 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)4760 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4759 # Sun Fortran 8.3 passes all unrecognized flags to the linker4761 # Sun Fortran 8.3 passes all unrecognized flags to the linker
4760 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'4762 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4937,7 +4939,7 @@ m4_if([$1], [CXX], [
4937 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then4939 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4938 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'4940 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
4939 else4941 else
4940 _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'4942 _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
4941 fi4943 fi
4942 ;;4944 ;;
4943 pw32*)4945 pw32*)
@@ -4945,7 +4947,7 @@ m4_if([$1], [CXX], [
4945 ;;4947 ;;
4946 cygwin* | mingw* | cegcc*)4948 cygwin* | mingw* | cegcc*)
4947 case $cc_basename in4949 case $cc_basename in
4948 cl*)4950 cl* | icl*)
4949 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'4951 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
4950 ;;4952 ;;
4951 *)4953 *)
@@ -4954,9 +4956,6 @@ m4_if([$1], [CXX], [
4954 ;;4956 ;;
4955 esac4957 esac
4956 ;;4958 ;;
4957 linux* | k*bsd*-gnu | gnu*)
4958 _LT_TAGVAR(link_all_deplibs, $1)=no
4959 ;;
4960 *)4959 *)
4961 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'4960 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4962 ;;4961 ;;
@@ -5005,23 +5004,20 @@ dnl Note also adjust exclude_expsyms for C++ above.
50055004
5006 case $host_os in5005 case $host_os in
5007 cygwin* | mingw* | pw32* | cegcc*)5006 cygwin* | mingw* | pw32* | cegcc*)
5008 # FIXME: the MSVC++ port hasn't been tested in a loooong time5007 # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
5009 # When not using gcc, we currently assume that we are using5008 # When not using gcc, we currently assume that we are using
5010 # Microsoft Visual C++.5009 # Microsoft Visual C++ or Intel C++ Compiler.
5011 if test yes != "$GCC"; then5010 if test yes != "$GCC"; then
5012 with_gnu_ld=no5011 with_gnu_ld=no
5013 fi5012 fi
5014 ;;5013 ;;
5015 interix*)5014 interix*)
5016 # we just hope/assume this is gcc and not c89 (= MSVC++)5015 # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
5017 with_gnu_ld=yes5016 with_gnu_ld=yes
5018 ;;5017 ;;
5019 openbsd* | bitrig*)5018 openbsd* | bitrig*)
5020 with_gnu_ld=no5019 with_gnu_ld=no
5021 ;;5020 ;;
5022 linux* | k*bsd*-gnu | gnu*)
5023 _LT_TAGVAR(link_all_deplibs, $1)=no
5024 ;;
5025 esac5021 esac
50265022
5027 _LT_TAGVAR(ld_shlibs, $1)=yes5023 _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -5068,7 +5064,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
5068 _LT_TAGVAR(whole_archive_flag_spec, $1)=5064 _LT_TAGVAR(whole_archive_flag_spec, $1)=
5069 fi5065 fi
5070 supports_anon_versioning=no5066 supports_anon_versioning=no
5071 case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in5067 case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
5072 *GNU\ gold*) supports_anon_versioning=yes ;;5068 *GNU\ gold*) supports_anon_versioning=yes ;;
5073 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.115069 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
5074 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...5070 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -5180,6 +5176,7 @@ _LT_EOF
5180 emximp -o $lib $output_objdir/$libname.def'5176 emximp -o $lib $output_objdir/$libname.def'
5181 _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'5177 _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
5182 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes5178 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5179 _LT_TAGVAR(file_list_spec, $1)='@'
5183 ;;5180 ;;
51845181
5185 interix[[3-9]]*)5182 interix[[3-9]]*)
@@ -5194,7 +5191,7 @@ _LT_EOF
5194 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link5191 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
5195 # time. Moving up from 0x10000000 also allows more sbrk(2) space.5192 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
5196 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'5193 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5197 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'5194 _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5198 ;;5195 ;;
51995196
5200 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)5197 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -5237,7 +5234,7 @@ _LT_EOF
5237 _LT_TAGVAR(compiler_needs_object, $1)=yes5234 _LT_TAGVAR(compiler_needs_object, $1)=yes
5238 ;;5235 ;;
5239 esac5236 esac
5240 case `$CC -V 2>&1 | sed 5q` in5237 case `$CC -V 2>&1 | $SED 5q` in
5241 *Sun\ C*) # Sun C 5.95238 *Sun\ C*) # Sun C 5.9
5242 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'5239 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
5243 _LT_TAGVAR(compiler_needs_object, $1)=yes5240 _LT_TAGVAR(compiler_needs_object, $1)=yes
@@ -5249,7 +5246,7 @@ _LT_EOF
52495246
5250 if test yes = "$supports_anon_versioning"; then5247 if test yes = "$supports_anon_versioning"; then
5251 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~5248 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5252 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~5249 cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5253 echo "local: *; };" >> $output_objdir/$libname.ver~5250 echo "local: *; };" >> $output_objdir/$libname.ver~
5254 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'5251 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
5255 fi5252 fi
@@ -5265,7 +5262,7 @@ _LT_EOF
5265 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'5262 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
5266 if test yes = "$supports_anon_versioning"; then5263 if test yes = "$supports_anon_versioning"; then
5267 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~5264 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5268 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~5265 cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5269 echo "local: *; };" >> $output_objdir/$libname.ver~5266 echo "local: *; };" >> $output_objdir/$libname.ver~
5270 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'5267 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
5271 fi5268 fi
@@ -5276,7 +5273,7 @@ _LT_EOF
5276 fi5273 fi
5277 ;;5274 ;;
52785275
5279 netbsd* | netbsdelf*-gnu)5276 netbsd*)
5280 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then5277 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
5281 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'5278 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
5282 wlarc=5279 wlarc=
@@ -5397,7 +5394,7 @@ _LT_EOF
5397 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then5394 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
5398 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'5395 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
5399 else5396 else
5400 _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'5397 _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
5401 fi5398 fi
5402 aix_use_runtimelinking=no5399 aix_use_runtimelinking=no
54035400
@@ -5580,12 +5577,12 @@ _LT_EOF
55805577
5581 cygwin* | mingw* | pw32* | cegcc*)5578 cygwin* | mingw* | pw32* | cegcc*)
5582 # When not using gcc, we currently assume that we are using5579 # When not using gcc, we currently assume that we are using
5583 # Microsoft Visual C++.5580 # Microsoft Visual C++ or Intel C++ Compiler.
5584 # hardcode_libdir_flag_spec is actually meaningless, as there is5581 # hardcode_libdir_flag_spec is actually meaningless, as there is
5585 # no search path for DLLs.5582 # no search path for DLLs.
5586 case $cc_basename in5583 case $cc_basename in
5587 cl*)
5588 # Native MSVC
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches