sync with OpenBSD -current

This commit is contained in:
purplerain 2024-10-07 23:11:56 +00:00
parent 4544ef4a2e
commit 06882d626f
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
49 changed files with 1832 additions and 835 deletions

View file

@ -0,0 +1,7 @@
# $OpenBSD: Makefile,v 1.1 2024/10/07 14:01:12 claudio Exp $
PROG= sig-stop2
LDADD= -lpthread
.include <bsd.regress.mk>

View file

@ -0,0 +1,137 @@
/* $OpenBSD: sig-stop2.c,v 1.1 2024/10/07 14:01:12 claudio Exp $ */
/*
* Written by Artur Grabowski <art@openbsd.org> 2007 Public Domain.
* Written by Claudio Jeker <claudio@openbsd.org> 2024 Public Domain.
*/
#include <sys/types.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <err.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <err.h>
#include <signal.h>
#include <pthread.h>
#define THREAD_COUNT 4
volatile sig_atomic_t tstp_count, cont_count;
pid_t child;
static void
tstp_handler(int sig)
{
tstp_count++;
dprintf(STDERR_FILENO, "SIGTSTP\n");
kill(getpid(), SIGSTOP);
}
static void
cont_handler(int sig)
{
dprintf(STDERR_FILENO, "SIGCONT\n");
cont_count++;
}
static void
alrm_handler(int sig)
{
kill(child, SIGKILL);
dprintf(STDERR_FILENO, "timeout\n");
_exit(2);
}
static void *
thread(void *arg)
{
struct timespec ts = { .tv_sec = 2 };
while (nanosleep(&ts, &ts) != 0)
;
return NULL;
}
static int
child_main(void)
{
pthread_t self, pthread[THREAD_COUNT];
sigset_t set;
int i, r;
signal(SIGTSTP, tstp_handler);
signal(SIGCONT, cont_handler);
sigemptyset(&set);
sigaddset(&set, SIGTSTP);
sigaddset(&set, SIGCONT);
self = pthread_self();
for (i = 0; i < THREAD_COUNT; i++) {
if ((r = pthread_create(&pthread[i], NULL, thread, NULL))) {
warnc(r, "could not create thread");
pthread[i] = self;
}
}
sigprocmask(SIG_BLOCK, &set, NULL);
for (i = 0; i < THREAD_COUNT; i++) {
if (!pthread_equal(pthread[i], self) &&
(r = pthread_join(pthread[i], NULL)))
warnc(r, "could not join thread");
}
printf("#tstp = %d #cont = %d\n", tstp_count, cont_count);
return !(tstp_count == 1 && cont_count == 1);
}
int
main(int argc, char **argv)
{
struct timespec ts = { .tv_nsec = 200 * 1000 * 1000 };
int status;
switch((child = fork())) {
case -1:
err(1, "fork");
case 0:
exit(child_main());
default:
break;
}
signal(SIGALRM, alrm_handler);
alarm(5);
nanosleep(&ts, NULL);
if (kill(child, SIGTSTP) == -1)
err(1, "kill");
if (waitpid(child, &status, WCONTINUED|WUNTRACED) <= 0)
err(1, "waitpid");
nanosleep(&ts, NULL);
if (kill(child, SIGCONT) == -1)
err(1, "kill");
if (waitpid(child, &status, WCONTINUED|WUNTRACED) <= 0)
err(1, "waitpid");
nanosleep(&ts, NULL);
if (waitpid(child, &status, 0) <= 0)
err(1, "waitpid");
if (!WIFEXITED(status))
err(1, "bad status: %d", status);
return WEXITSTATUS(status);
}

View file

@ -1,4 +1,4 @@
# $OpenBSD: Makefile.inc,v 1.37 2024/02/22 12:51:50 job Exp $ # $OpenBSD: Makefile.inc,v 1.38 2024/10/07 12:27:27 tb Exp $
.PATH: ${.CURDIR}/../../../../usr.sbin/rpki-client .PATH: ${.CURDIR}/../../../../usr.sbin/rpki-client
@ -14,6 +14,7 @@ PROGS += test-rrdp
PROGS += test-aspa PROGS += test-aspa
PROGS += test-tak PROGS += test-tak
PROGS += test-spl PROGS += test-spl
PROGS += test-seqnum
.for p in ${PROGS} .for p in ${PROGS}
REGRESS_TARGETS += run-regress-$p REGRESS_TARGETS += run-regress-$p
@ -96,6 +97,9 @@ SRCS_test-spl+= test-spl.c spl.c cms.c x509.c ip.c as.c io.c \
run-regress-test-spl: test-spl run-regress-test-spl: test-spl
./test-spl -v ${.CURDIR}/../spl/*.spl ./test-spl -v ${.CURDIR}/../spl/*.spl
SRCS_test-seqnum += test-seqnum.c as.c ip.c encoding.c x509.c print.c validate.c \
json.c crl.c
SRCS_test-rrdp+= test-rrdp.c rrdp_delta.c rrdp_notification.c cms.c \ SRCS_test-rrdp+= test-rrdp.c rrdp_delta.c rrdp_notification.c cms.c \
rrdp_snapshot.c rrdp_util.c cert.c as.c mft.c io.c \ rrdp_snapshot.c rrdp_util.c cert.c as.c mft.c io.c \
encoding.c ip.c validate.c crl.c x509.c \ encoding.c ip.c validate.c crl.c x509.c \

View file

@ -0,0 +1,186 @@
/* $OpenBSD: test-seqnum.c,v 1.1 2024/10/07 12:27:27 tb Exp $ */
/*
* Copyright (c) 2024 Theo Buehler <tb@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <openssl/asn1.h>
#include <openssl/bn.h>
#include <err.h>
#include <stdio.h>
#include <unistd.h>
#include "extern.h"
#define MAX_DER 25
static const struct seqnum {
const char *descr;
const unsigned char der[MAX_DER];
int der_len;
int valid;
} seqnum_tests[] = {
{
.descr = "0 - smallest acceptable value:",
.der = {
0x02, 0x01, 0x00,
},
.der_len = 3,
.valid = 1,
},
{
.descr = "1 - acceptable:",
.der = {
0x02, 0x01, 0x01,
},
.der_len = 3,
.valid = 1,
},
{
.descr = "-1 - invalid:",
.der = {
0x02, 0x01, 0xff,
},
.der_len = 3,
.valid = 0,
},
{
.descr = "2^159 - 1 - largest acceptable value:",
.der = {
0x02, 0x14,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff,
},
.der_len = 22,
.valid = 1,
},
{
.descr = "-2^159 - invalid, but fits in 20 octets:",
.der = {
0x02, 0x14,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
},
.der_len = 22,
.valid = 0,
},
{
.descr = "2^159 - smallest inacceptable positive value:",
.der = {
0x02, 0x15,
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
},
.der_len = 23,
.valid = 0,
},
{
.descr = "2^160 - 1 - largest unsigned 20-bit number:",
.der = {
0x02, 0x15,
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff,
},
.der_len = 23,
.valid = 0,
},
{
.descr = "2^160: too large:",
.der = {
0x02, 0x15,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
},
.der_len = 23,
.valid = 0,
},
};
#define N_SEQNUM_TESTS (sizeof(seqnum_tests) / sizeof(seqnum_tests[0]))
static int
seqnum_testcase(const struct seqnum *test)
{
ASN1_INTEGER *aint = NULL;
const BIGNUM *bn;
const unsigned char *p;
char *s = NULL;
int failed = 1;
p = test->der;
if ((aint = d2i_ASN1_INTEGER(NULL, &p, test->der_len)) == NULL) {
fprintf(stderr, "FAIL: %s d2i_ASN1_INTEGER\n", test->descr);
goto err;
}
s = x509_convert_seqnum(__func__, test->descr, aint);
if (s == NULL && test->valid) {
fprintf(stderr, "FAIL: %s failed to convert seqnum\n",
test->descr);
goto err;
}
if (s != NULL && !test->valid) {
fprintf(stderr, "FAIL: %s invalid seqnum succeeded\n",
test->descr);
goto err;
}
failed = 0;
err:
ASN1_INTEGER_free(aint);
free(s);
return failed;
}
static int
seqnum_test(void)
{
size_t i;
int failed = 0;
for (i = 0; i < N_SEQNUM_TESTS; i++)
failed |= seqnum_testcase(&seqnum_tests[i]);
return failed;
}
time_t
get_current_time(void)
{
return time(NULL);
}
int experimental, filemode, outformats, verbose;
int
main(void)
{
int failed = 0;
failed = seqnum_test();
if (!failed)
printf("OK\n");
return failed;
}

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: axen.4,v 1.10 2024/01/04 08:41:59 kevlo Exp $ .\" $OpenBSD: axen.4,v 1.11 2024/10/07 07:35:40 kevlo Exp $
.\" .\"
.\" Copyright (c) 2013 Yojiro UO <yuo@nui.org> .\" Copyright (c) 2013 Yojiro UO <yuo@nui.org>
.\" .\"
@ -14,12 +14,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.Dd $Mdocdate: January 4 2024 $ .Dd $Mdocdate: October 7 2024 $
.Dt AXEN 4 .Dt AXEN 4
.Os .Os
.Sh NAME .Sh NAME
.Nm axen .Nm axen
.Nd ASIX Electronics AX88179/AX88179A 10/100/1Gb USB Ethernet device .Nd ASIX Electronics AX88179/AX88179A/AX88772D 10/100/1Gb USB Ethernet device
.Sh SYNOPSIS .Sh SYNOPSIS
.Cd "axen* at uhub?" .Cd "axen* at uhub?"
.Cd "rgephy* at mii?" .Cd "rgephy* at mii?"
@ -28,7 +28,7 @@
The The
.Nm .Nm
driver provides support for USB Ethernet adapters based on the ASIX driver provides support for USB Ethernet adapters based on the ASIX
Electronics AX88179/AX88179A USB 3.0 chipset, including the following: Electronics AX88179/AX88179A/AX88772D chipset, including the following:
.Pp .Pp
.Bl -tag -width Ds -offset indent -compact .Bl -tag -width Ds -offset indent -compact
.It D-Link DUB-1312 .It D-Link DUB-1312
@ -38,8 +38,14 @@ Electronics AX88179/AX88179A USB 3.0 chipset, including the following:
.It StarTech USB31000S .It StarTech USB31000S
.It TP-LINK UE300C v2 .It TP-LINK UE300C v2
.It TP-Link UE306 .It TP-Link UE306
.It Ugreen CM650-15632
.El .El
.Pp .Pp
The AX88772D is a USB 2.0 device which supports both
10 and 100Mbps speeds in either full or half duplex.
The AX88179 and AX88179A are USB 3.0 devices, which contain
a 10/100/1Gb Ethernet MAC with a GMII/MII interface.
.Pp
The The
.Nm .Nm
driver supports the following media types: driver supports the following media types:

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: usb.4,v 1.219 2024/05/15 01:41:18 kevlo Exp $ .\" $OpenBSD: usb.4,v 1.220 2024/10/07 07:35:40 kevlo Exp $
.\" $NetBSD: usb.4,v 1.15 1999/07/29 14:20:32 augustss Exp $ .\" $NetBSD: usb.4,v 1.15 1999/07/29 14:20:32 augustss Exp $
.\" .\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc. .\" Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -28,7 +28,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE. .\" POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.Dd $Mdocdate: May 15 2024 $ .Dd $Mdocdate: October 7 2024 $
.Dt USB 4 .Dt USB 4
.Os .Os
.Sh NAME .Sh NAME
@ -112,7 +112,7 @@ ADMtek AN986/ADM8511 Pegasus family 10/100 USB Ethernet device
.It Xr axe 4 .It Xr axe 4
ASIX Electronics AX88172/AX88178/AX88772 10/100/1Gb USB Ethernet device ASIX Electronics AX88172/AX88178/AX88772 10/100/1Gb USB Ethernet device
.It Xr axen 4 .It Xr axen 4
ASIX Electronics AX88179/AX88179A 10/100/1Gb USB Ethernet device ASIX Electronics AX88179/AX88179A/AX88772D 10/100/1Gb USB Ethernet device
.It Xr cdce 4 .It Xr cdce 4
USB Communication Device Class Ethernet device USB Communication Device Class Ethernet device
.It Xr cue 4 .It Xr cue 4

View file

@ -2065,26 +2065,29 @@ amdgpu_atombios_encoder_get_lcd_info(struct amdgpu_encoder *encoder)
fake_edid_record = (ATOM_FAKE_EDID_PATCH_RECORD *)record; fake_edid_record = (ATOM_FAKE_EDID_PATCH_RECORD *)record;
if (fake_edid_record->ucFakeEDIDLength) { if (fake_edid_record->ucFakeEDIDLength) {
struct edid *edid; struct edid *edid;
int edid_size = int edid_size;
max((int)EDID_LENGTH, (int)fake_edid_record->ucFakeEDIDLength);
edid = kmalloc(edid_size, GFP_KERNEL);
if (edid) {
memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0],
fake_edid_record->ucFakeEDIDLength);
if (fake_edid_record->ucFakeEDIDLength == 128)
edid_size = fake_edid_record->ucFakeEDIDLength;
else
edid_size = fake_edid_record->ucFakeEDIDLength * 128;
edid = kmemdup(&fake_edid_record->ucFakeEDIDString[0],
edid_size, GFP_KERNEL);
if (edid) {
if (drm_edid_is_valid(edid)) { if (drm_edid_is_valid(edid)) {
adev->mode_info.bios_hardcoded_edid = edid; adev->mode_info.bios_hardcoded_edid = edid;
adev->mode_info.bios_hardcoded_edid_size = edid_size; adev->mode_info.bios_hardcoded_edid_size = edid_size;
} else } else {
kfree(edid); kfree(edid);
}
} }
record += struct_size(fake_edid_record,
ucFakeEDIDString,
edid_size);
} else {
/* empty fake edid record must be 3 bytes long */
record += sizeof(ATOM_FAKE_EDID_PATCH_RECORD) + 1;
} }
record += fake_edid_record->ucFakeEDIDLength ?
struct_size(fake_edid_record,
ucFakeEDIDString,
fake_edid_record->ucFakeEDIDLength) :
/* empty fake edid record must be 3 bytes long */
sizeof(ATOM_FAKE_EDID_PATCH_RECORD) + 1;
break; break;
case LCD_PANEL_RESOLUTION_RECORD_TYPE: case LCD_PANEL_RESOLUTION_RECORD_TYPE:
panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record; panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record;

View file

@ -209,7 +209,7 @@ struct amd_sriov_msg_pf2vf_info {
uint32_t pcie_atomic_ops_support_flags; uint32_t pcie_atomic_ops_support_flags;
/* reserved */ /* reserved */
uint32_t reserved[256 - AMD_SRIOV_MSG_PF2VF_INFO_FILLED_SIZE]; uint32_t reserved[256 - AMD_SRIOV_MSG_PF2VF_INFO_FILLED_SIZE];
}; } __packed;
struct amd_sriov_msg_vf2pf_info_header { struct amd_sriov_msg_vf2pf_info_header {
/* the total structure size in byte */ /* the total structure size in byte */
@ -267,7 +267,7 @@ struct amd_sriov_msg_vf2pf_info {
/* reserved */ /* reserved */
uint32_t reserved[256 - AMD_SRIOV_MSG_VF2PF_INFO_FILLED_SIZE]; uint32_t reserved[256 - AMD_SRIOV_MSG_VF2PF_INFO_FILLED_SIZE];
}; } __packed;
/* mailbox message send from guest to host */ /* mailbox message send from guest to host */
enum amd_sriov_mailbox_request_message { enum amd_sriov_mailbox_request_message {

View file

@ -4041,6 +4041,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 #define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12
#define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255
#define AMDGPU_DM_MIN_SPREAD ((AMDGPU_DM_DEFAULT_MAX_BACKLIGHT - AMDGPU_DM_DEFAULT_MIN_BACKLIGHT) / 2)
#define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
static void amdgpu_dm_update_backlight_caps(struct amdgpu_display_manager *dm, static void amdgpu_dm_update_backlight_caps(struct amdgpu_display_manager *dm,
@ -4055,6 +4056,21 @@ static void amdgpu_dm_update_backlight_caps(struct amdgpu_display_manager *dm,
return; return;
amdgpu_acpi_get_backlight_caps(&caps); amdgpu_acpi_get_backlight_caps(&caps);
/* validate the firmware value is sane */
if (caps.caps_valid) {
int spread = caps.max_input_signal - caps.min_input_signal;
if (caps.max_input_signal > AMDGPU_DM_DEFAULT_MAX_BACKLIGHT ||
caps.min_input_signal < AMDGPU_DM_DEFAULT_MIN_BACKLIGHT ||
spread > AMDGPU_DM_DEFAULT_MAX_BACKLIGHT ||
spread < AMDGPU_DM_MIN_SPREAD) {
DRM_DEBUG_KMS("DM: Invalid backlight caps: min=%d, max=%d\n",
caps.min_input_signal, caps.max_input_signal);
caps.caps_valid = false;
}
}
if (caps.caps_valid) { if (caps.caps_valid) {
dm->backlight_caps[bl_idx].caps_valid = true; dm->backlight_caps[bl_idx].caps_valid = true;
if (caps.aux_support) if (caps.aux_support)

View file

@ -246,7 +246,7 @@ static bool validate_dsc_caps_on_connector(struct amdgpu_dm_connector *aconnecto
aconnector->dsc_aux = &aconnector->mst_root->dm_dp_aux.aux; aconnector->dsc_aux = &aconnector->mst_root->dm_dp_aux.aux;
/* synaptics cascaded MST hub case */ /* synaptics cascaded MST hub case */
if (!aconnector->dsc_aux && is_synaptics_cascaded_panamera(aconnector->dc_link, port)) if (is_synaptics_cascaded_panamera(aconnector->dc_link, port))
aconnector->dsc_aux = port->mgr->aux; aconnector->dsc_aux = port->mgr->aux;
if (!aconnector->dsc_aux) if (!aconnector->dsc_aux)
@ -1115,7 +1115,7 @@ static int compute_mst_dsc_configs_for_link(struct drm_atomic_state *state,
params[count].num_slices_v = aconnector->dsc_settings.dsc_num_slices_v; params[count].num_slices_v = aconnector->dsc_settings.dsc_num_slices_v;
params[count].bpp_overwrite = aconnector->dsc_settings.dsc_bits_per_pixel; params[count].bpp_overwrite = aconnector->dsc_settings.dsc_bits_per_pixel;
params[count].compression_possible = stream->sink->dsc_caps.dsc_dec_caps.is_dsc_supported; params[count].compression_possible = stream->sink->dsc_caps.dsc_dec_caps.is_dsc_supported;
dc_dsc_get_policy_for_timing(params[count].timing, 0, &dsc_policy); dc_dsc_get_policy_for_timing(params[count].timing, 0, &dsc_policy, dc_link_get_highest_encoding_format(stream->link));
if (!dc_dsc_compute_bandwidth_range( if (!dc_dsc_compute_bandwidth_range(
stream->sink->ctx->dc->res_pool->dscs[0], stream->sink->ctx->dc->res_pool->dscs[0],
stream->sink->ctx->dc->debug.dsc_min_slice_height_override, stream->sink->ctx->dc->debug.dsc_min_slice_height_override,
@ -1583,7 +1583,7 @@ static bool is_dsc_common_config_possible(struct dc_stream_state *stream,
{ {
struct dc_dsc_policy dsc_policy = {0}; struct dc_dsc_policy dsc_policy = {0};
dc_dsc_get_policy_for_timing(&stream->timing, 0, &dsc_policy); dc_dsc_get_policy_for_timing(&stream->timing, 0, &dsc_policy, dc_link_get_highest_encoding_format(stream->link));
dc_dsc_compute_bandwidth_range(stream->sink->ctx->dc->res_pool->dscs[0], dc_dsc_compute_bandwidth_range(stream->sink->ctx->dc->res_pool->dscs[0],
stream->sink->ctx->dc->debug.dsc_min_slice_height_override, stream->sink->ctx->dc->debug.dsc_min_slice_height_override,
dsc_policy.min_target_bpp * 16, dsc_policy.min_target_bpp * 16,

View file

@ -100,7 +100,8 @@ uint32_t dc_dsc_stream_bandwidth_overhead_in_kbps(
*/ */
void dc_dsc_get_policy_for_timing(const struct dc_crtc_timing *timing, void dc_dsc_get_policy_for_timing(const struct dc_crtc_timing *timing,
uint32_t max_target_bpp_limit_override_x16, uint32_t max_target_bpp_limit_override_x16,
struct dc_dsc_policy *policy); struct dc_dsc_policy *policy,
const enum dc_link_encoding_format link_encoding);
void dc_dsc_policy_set_max_target_bpp_limit(uint32_t limit); void dc_dsc_policy_set_max_target_bpp_limit(uint32_t limit);

View file

@ -214,7 +214,11 @@ bool dcn30_set_output_transfer_func(struct dc *dc,
} }
} }
mpc->funcs->set_output_gamma(mpc, mpcc_id, params); if (mpc->funcs->set_output_gamma)
mpc->funcs->set_output_gamma(mpc, mpcc_id, params);
else
DC_LOG_ERROR("%s: set_output_gamma function pointer is NULL.\n", __func__);
return ret; return ret;
} }

View file

@ -861,7 +861,7 @@ static bool setup_dsc_config(
memset(dsc_cfg, 0, sizeof(struct dc_dsc_config)); memset(dsc_cfg, 0, sizeof(struct dc_dsc_config));
dc_dsc_get_policy_for_timing(timing, options->max_target_bpp_limit_override_x16, &policy); dc_dsc_get_policy_for_timing(timing, options->max_target_bpp_limit_override_x16, &policy, link_encoding);
pic_width = timing->h_addressable + timing->h_border_left + timing->h_border_right; pic_width = timing->h_addressable + timing->h_border_left + timing->h_border_right;
pic_height = timing->v_addressable + timing->v_border_top + timing->v_border_bottom; pic_height = timing->v_addressable + timing->v_border_top + timing->v_border_bottom;
@ -1134,7 +1134,8 @@ uint32_t dc_dsc_stream_bandwidth_overhead_in_kbps(
void dc_dsc_get_policy_for_timing(const struct dc_crtc_timing *timing, void dc_dsc_get_policy_for_timing(const struct dc_crtc_timing *timing,
uint32_t max_target_bpp_limit_override_x16, uint32_t max_target_bpp_limit_override_x16,
struct dc_dsc_policy *policy) struct dc_dsc_policy *policy,
const enum dc_link_encoding_format link_encoding)
{ {
uint32_t bpc = 0; uint32_t bpc = 0;

View file

@ -133,7 +133,7 @@ unsigned int mod_freesync_calc_v_total_from_refresh(
v_total = div64_u64(div64_u64(((unsigned long long)( v_total = div64_u64(div64_u64(((unsigned long long)(
frame_duration_in_ns) * (stream->timing.pix_clk_100hz / 10)), frame_duration_in_ns) * (stream->timing.pix_clk_100hz / 10)),
stream->timing.h_total), 1000000); stream->timing.h_total) + 500000, 1000000);
/* v_total cannot be less than nominal */ /* v_total cannot be less than nominal */
if (v_total < stream->timing.v_total) { if (v_total < stream->timing.v_total) {

View file

@ -395,7 +395,7 @@ static int evergreen_cs_track_validate_cb(struct radeon_cs_parser *p, unsigned i
struct evergreen_cs_track *track = p->track; struct evergreen_cs_track *track = p->track;
struct eg_surface surf; struct eg_surface surf;
unsigned pitch, slice, mslice; unsigned pitch, slice, mslice;
unsigned long offset; u64 offset;
int r; int r;
mslice = G_028C6C_SLICE_MAX(track->cb_color_view[id]) + 1; mslice = G_028C6C_SLICE_MAX(track->cb_color_view[id]) + 1;
@ -433,14 +433,14 @@ static int evergreen_cs_track_validate_cb(struct radeon_cs_parser *p, unsigned i
return r; return r;
} }
offset = track->cb_color_bo_offset[id] << 8; offset = (u64)track->cb_color_bo_offset[id] << 8;
if (offset & (surf.base_align - 1)) { if (offset & (surf.base_align - 1)) {
dev_warn(p->dev, "%s:%d cb[%d] bo base %ld not aligned with %ld\n", dev_warn(p->dev, "%s:%d cb[%d] bo base %llu not aligned with %ld\n",
__func__, __LINE__, id, offset, surf.base_align); __func__, __LINE__, id, offset, surf.base_align);
return -EINVAL; return -EINVAL;
} }
offset += surf.layer_size * mslice; offset += (u64)surf.layer_size * mslice;
if (offset > radeon_bo_size(track->cb_color_bo[id])) { if (offset > radeon_bo_size(track->cb_color_bo[id])) {
/* old ddx are broken they allocate bo with w*h*bpp but /* old ddx are broken they allocate bo with w*h*bpp but
* program slice with ALIGN(h, 8), catch this and patch * program slice with ALIGN(h, 8), catch this and patch
@ -448,14 +448,14 @@ static int evergreen_cs_track_validate_cb(struct radeon_cs_parser *p, unsigned i
*/ */
if (!surf.mode) { if (!surf.mode) {
uint32_t *ib = p->ib.ptr; uint32_t *ib = p->ib.ptr;
unsigned long tmp, nby, bsize, size, min = 0; u64 tmp, nby, bsize, size, min = 0;
/* find the height the ddx wants */ /* find the height the ddx wants */
if (surf.nby > 8) { if (surf.nby > 8) {
min = surf.nby - 8; min = surf.nby - 8;
} }
bsize = radeon_bo_size(track->cb_color_bo[id]); bsize = radeon_bo_size(track->cb_color_bo[id]);
tmp = track->cb_color_bo_offset[id] << 8; tmp = (u64)track->cb_color_bo_offset[id] << 8;
for (nby = surf.nby; nby > min; nby--) { for (nby = surf.nby; nby > min; nby--) {
size = nby * surf.nbx * surf.bpe * surf.nsamples; size = nby * surf.nbx * surf.bpe * surf.nsamples;
if ((tmp + size * mslice) <= bsize) { if ((tmp + size * mslice) <= bsize) {
@ -467,7 +467,7 @@ static int evergreen_cs_track_validate_cb(struct radeon_cs_parser *p, unsigned i
slice = ((nby * surf.nbx) / 64) - 1; slice = ((nby * surf.nbx) / 64) - 1;
if (!evergreen_surface_check(p, &surf, "cb")) { if (!evergreen_surface_check(p, &surf, "cb")) {
/* check if this one works */ /* check if this one works */
tmp += surf.layer_size * mslice; tmp += (u64)surf.layer_size * mslice;
if (tmp <= bsize) { if (tmp <= bsize) {
ib[track->cb_color_slice_idx[id]] = slice; ib[track->cb_color_slice_idx[id]] = slice;
goto old_ddx_ok; goto old_ddx_ok;
@ -476,9 +476,9 @@ static int evergreen_cs_track_validate_cb(struct radeon_cs_parser *p, unsigned i
} }
} }
dev_warn(p->dev, "%s:%d cb[%d] bo too small (layer size %d, " dev_warn(p->dev, "%s:%d cb[%d] bo too small (layer size %d, "
"offset %d, max layer %d, bo size %ld, slice %d)\n", "offset %llu, max layer %d, bo size %ld, slice %d)\n",
__func__, __LINE__, id, surf.layer_size, __func__, __LINE__, id, surf.layer_size,
track->cb_color_bo_offset[id] << 8, mslice, (u64)track->cb_color_bo_offset[id] << 8, mslice,
radeon_bo_size(track->cb_color_bo[id]), slice); radeon_bo_size(track->cb_color_bo[id]), slice);
dev_warn(p->dev, "%s:%d problematic surf: (%d %d) (%d %d %d %d %d %d %d)\n", dev_warn(p->dev, "%s:%d problematic surf: (%d %d) (%d %d %d %d %d %d %d)\n",
__func__, __LINE__, surf.nbx, surf.nby, __func__, __LINE__, surf.nbx, surf.nby,
@ -562,7 +562,7 @@ static int evergreen_cs_track_validate_stencil(struct radeon_cs_parser *p)
struct evergreen_cs_track *track = p->track; struct evergreen_cs_track *track = p->track;
struct eg_surface surf; struct eg_surface surf;
unsigned pitch, slice, mslice; unsigned pitch, slice, mslice;
unsigned long offset; u64 offset;
int r; int r;
mslice = G_028008_SLICE_MAX(track->db_depth_view) + 1; mslice = G_028008_SLICE_MAX(track->db_depth_view) + 1;
@ -608,18 +608,18 @@ static int evergreen_cs_track_validate_stencil(struct radeon_cs_parser *p)
return r; return r;
} }
offset = track->db_s_read_offset << 8; offset = (u64)track->db_s_read_offset << 8;
if (offset & (surf.base_align - 1)) { if (offset & (surf.base_align - 1)) {
dev_warn(p->dev, "%s:%d stencil read bo base %ld not aligned with %ld\n", dev_warn(p->dev, "%s:%d stencil read bo base %llu not aligned with %ld\n",
__func__, __LINE__, offset, surf.base_align); __func__, __LINE__, offset, surf.base_align);
return -EINVAL; return -EINVAL;
} }
offset += surf.layer_size * mslice; offset += (u64)surf.layer_size * mslice;
if (offset > radeon_bo_size(track->db_s_read_bo)) { if (offset > radeon_bo_size(track->db_s_read_bo)) {
dev_warn(p->dev, "%s:%d stencil read bo too small (layer size %d, " dev_warn(p->dev, "%s:%d stencil read bo too small (layer size %d, "
"offset %ld, max layer %d, bo size %ld)\n", "offset %llu, max layer %d, bo size %ld)\n",
__func__, __LINE__, surf.layer_size, __func__, __LINE__, surf.layer_size,
(unsigned long)track->db_s_read_offset << 8, mslice, (u64)track->db_s_read_offset << 8, mslice,
radeon_bo_size(track->db_s_read_bo)); radeon_bo_size(track->db_s_read_bo));
dev_warn(p->dev, "%s:%d stencil invalid (0x%08x 0x%08x 0x%08x 0x%08x)\n", dev_warn(p->dev, "%s:%d stencil invalid (0x%08x 0x%08x 0x%08x 0x%08x)\n",
__func__, __LINE__, track->db_depth_size, __func__, __LINE__, track->db_depth_size,
@ -627,18 +627,18 @@ static int evergreen_cs_track_validate_stencil(struct radeon_cs_parser *p)
return -EINVAL; return -EINVAL;
} }
offset = track->db_s_write_offset << 8; offset = (u64)track->db_s_write_offset << 8;
if (offset & (surf.base_align - 1)) { if (offset & (surf.base_align - 1)) {
dev_warn(p->dev, "%s:%d stencil write bo base %ld not aligned with %ld\n", dev_warn(p->dev, "%s:%d stencil write bo base %llu not aligned with %ld\n",
__func__, __LINE__, offset, surf.base_align); __func__, __LINE__, offset, surf.base_align);
return -EINVAL; return -EINVAL;
} }
offset += surf.layer_size * mslice; offset += (u64)surf.layer_size * mslice;
if (offset > radeon_bo_size(track->db_s_write_bo)) { if (offset > radeon_bo_size(track->db_s_write_bo)) {
dev_warn(p->dev, "%s:%d stencil write bo too small (layer size %d, " dev_warn(p->dev, "%s:%d stencil write bo too small (layer size %d, "
"offset %ld, max layer %d, bo size %ld)\n", "offset %llu, max layer %d, bo size %ld)\n",
__func__, __LINE__, surf.layer_size, __func__, __LINE__, surf.layer_size,
(unsigned long)track->db_s_write_offset << 8, mslice, (u64)track->db_s_write_offset << 8, mslice,
radeon_bo_size(track->db_s_write_bo)); radeon_bo_size(track->db_s_write_bo));
return -EINVAL; return -EINVAL;
} }
@ -659,7 +659,7 @@ static int evergreen_cs_track_validate_depth(struct radeon_cs_parser *p)
struct evergreen_cs_track *track = p->track; struct evergreen_cs_track *track = p->track;
struct eg_surface surf; struct eg_surface surf;
unsigned pitch, slice, mslice; unsigned pitch, slice, mslice;
unsigned long offset; u64 offset;
int r; int r;
mslice = G_028008_SLICE_MAX(track->db_depth_view) + 1; mslice = G_028008_SLICE_MAX(track->db_depth_view) + 1;
@ -706,34 +706,34 @@ static int evergreen_cs_track_validate_depth(struct radeon_cs_parser *p)
return r; return r;
} }
offset = track->db_z_read_offset << 8; offset = (u64)track->db_z_read_offset << 8;
if (offset & (surf.base_align - 1)) { if (offset & (surf.base_align - 1)) {
dev_warn(p->dev, "%s:%d stencil read bo base %ld not aligned with %ld\n", dev_warn(p->dev, "%s:%d stencil read bo base %llu not aligned with %ld\n",
__func__, __LINE__, offset, surf.base_align); __func__, __LINE__, offset, surf.base_align);
return -EINVAL; return -EINVAL;
} }
offset += surf.layer_size * mslice; offset += (u64)surf.layer_size * mslice;
if (offset > radeon_bo_size(track->db_z_read_bo)) { if (offset > radeon_bo_size(track->db_z_read_bo)) {
dev_warn(p->dev, "%s:%d depth read bo too small (layer size %d, " dev_warn(p->dev, "%s:%d depth read bo too small (layer size %d, "
"offset %ld, max layer %d, bo size %ld)\n", "offset %llu, max layer %d, bo size %ld)\n",
__func__, __LINE__, surf.layer_size, __func__, __LINE__, surf.layer_size,
(unsigned long)track->db_z_read_offset << 8, mslice, (u64)track->db_z_read_offset << 8, mslice,
radeon_bo_size(track->db_z_read_bo)); radeon_bo_size(track->db_z_read_bo));
return -EINVAL; return -EINVAL;
} }
offset = track->db_z_write_offset << 8; offset = (u64)track->db_z_write_offset << 8;
if (offset & (surf.base_align - 1)) { if (offset & (surf.base_align - 1)) {
dev_warn(p->dev, "%s:%d stencil write bo base %ld not aligned with %ld\n", dev_warn(p->dev, "%s:%d stencil write bo base %llu not aligned with %ld\n",
__func__, __LINE__, offset, surf.base_align); __func__, __LINE__, offset, surf.base_align);
return -EINVAL; return -EINVAL;
} }
offset += surf.layer_size * mslice; offset += (u64)surf.layer_size * mslice;
if (offset > radeon_bo_size(track->db_z_write_bo)) { if (offset > radeon_bo_size(track->db_z_write_bo)) {
dev_warn(p->dev, "%s:%d depth write bo too small (layer size %d, " dev_warn(p->dev, "%s:%d depth write bo too small (layer size %d, "
"offset %ld, max layer %d, bo size %ld)\n", "offset %llu, max layer %d, bo size %ld)\n",
__func__, __LINE__, surf.layer_size, __func__, __LINE__, surf.layer_size,
(unsigned long)track->db_z_write_offset << 8, mslice, (u64)track->db_z_write_offset << 8, mslice,
radeon_bo_size(track->db_z_write_bo)); radeon_bo_size(track->db_z_write_bo));
return -EINVAL; return -EINVAL;
} }

View file

@ -1720,26 +1720,29 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
fake_edid_record = (ATOM_FAKE_EDID_PATCH_RECORD *)record; fake_edid_record = (ATOM_FAKE_EDID_PATCH_RECORD *)record;
if (fake_edid_record->ucFakeEDIDLength) { if (fake_edid_record->ucFakeEDIDLength) {
struct edid *edid; struct edid *edid;
int edid_size = int edid_size;
max((int)EDID_LENGTH, (int)fake_edid_record->ucFakeEDIDLength);
edid = kmalloc(edid_size, GFP_KERNEL);
if (edid) {
memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0],
fake_edid_record->ucFakeEDIDLength);
if (fake_edid_record->ucFakeEDIDLength == 128)
edid_size = fake_edid_record->ucFakeEDIDLength;
else
edid_size = fake_edid_record->ucFakeEDIDLength * 128;
edid = kmemdup(&fake_edid_record->ucFakeEDIDString[0],
edid_size, GFP_KERNEL);
if (edid) {
if (drm_edid_is_valid(edid)) { if (drm_edid_is_valid(edid)) {
rdev->mode_info.bios_hardcoded_edid = edid; rdev->mode_info.bios_hardcoded_edid = edid;
rdev->mode_info.bios_hardcoded_edid_size = edid_size; rdev->mode_info.bios_hardcoded_edid_size = edid_size;
} else } else {
kfree(edid); kfree(edid);
}
} }
record += struct_size(fake_edid_record,
ucFakeEDIDString,
edid_size);
} else {
/* empty fake edid record must be 3 bytes long */
record += sizeof(ATOM_FAKE_EDID_PATCH_RECORD) + 1;
} }
record += fake_edid_record->ucFakeEDIDLength ?
struct_size(fake_edid_record,
ucFakeEDIDString,
fake_edid_record->ucFakeEDIDLength) :
/* empty fake edid record must be 3 bytes long */
sizeof(ATOM_FAKE_EDID_PATCH_RECORD) + 1;
break; break;
case LCD_PANEL_RESOLUTION_RECORD_TYPE: case LCD_PANEL_RESOLUTION_RECORD_TYPE:
panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record; panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: if_axen.c,v 1.33 2024/05/23 03:21:08 jsg Exp $ */ /* $OpenBSD: if_axen.c,v 1.34 2024/10/07 07:35:40 kevlo Exp $ */
/* /*
* Copyright (c) 2013 Yojiro UO <yuo@openbsd.org> * Copyright (c) 2013 Yojiro UO <yuo@openbsd.org>
@ -17,7 +17,7 @@
*/ */
/* /*
* ASIX Electronics AX88178a USB 2.0 ethernet and * ASIX Electronics AX88178a/AX88772d USB 2.0 ethernet and
* AX88179/AX88179a USB 3.0 Ethernet driver. * AX88179/AX88179a USB 3.0 Ethernet driver.
*/ */
@ -251,6 +251,8 @@ axen_miibus_statchg(struct device *dev)
sc->axen_link++; sc->axen_link++;
break; break;
case IFM_1000_T: case IFM_1000_T:
if ((sc->axen_flags & AX772D) != 0)
break;
sc->axen_link++; sc->axen_link++;
break; break;
default: default:
@ -658,8 +660,14 @@ axen_attach(struct device *parent, struct device *self, void *aux)
} }
dd = usbd_get_device_descriptor(sc->axen_udev); dd = usbd_get_device_descriptor(sc->axen_udev);
if (UGETW(dd->bcdDevice) == 0x200) switch (UGETW(dd->bcdDevice)) {
case 0x200:
sc->axen_flags = AX179A; sc->axen_flags = AX179A;
break;
case 0x300:
sc->axen_flags = AX772D;
break;
}
s = splnet(); s = splnet();
@ -683,6 +691,8 @@ axen_attach(struct device *parent, struct device *self, void *aux)
printf(" AX88178a"); printf(" AX88178a");
else if (sc->axen_flags & AX179) else if (sc->axen_flags & AX179)
printf(" AX88179"); printf(" AX88179");
else if (sc->axen_flags & AX772D)
printf(" AX88772D");
else else
printf(" AX88179A"); printf(" AX88179A");
printf(", address %s\n", ether_sprintf(eaddr)); printf(", address %s\n", ether_sprintf(eaddr));
@ -968,7 +978,7 @@ axen_rxeof(struct usbd_xfer *xfer, void *priv, usbd_status status)
/* skip pseudo header (2byte) */ /* skip pseudo header (2byte) */
padlen = 2; padlen = 2;
/* skip trailer padding (4Byte) for ax88179 */ /* skip trailer padding (4Byte) for ax88179 */
if (!(sc->axen_flags & AX179A)) if (!(sc->axen_flags & (AX179A | AX772D)))
padlen += 4; padlen += 4;
do { do {

View file

@ -1,4 +1,4 @@
/* $OpenBSD: if_axenreg.h,v 1.7 2024/01/04 08:41:59 kevlo Exp $ */ /* $OpenBSD: if_axenreg.h,v 1.8 2024/10/07 07:35:40 kevlo Exp $ */
/* /*
* Copyright (c) 2013 Yojiro UO <yuo@openbsd.org>. All right reserved. * Copyright (c) 2013 Yojiro UO <yuo@openbsd.org>. All right reserved.
@ -228,6 +228,7 @@ struct axen_type {
#define AX178A 0x0001 /* AX88178a */ #define AX178A 0x0001 /* AX88178a */
#define AX179 0x0002 /* AX88179 */ #define AX179 0x0002 /* AX88179 */
#define AX179A 0x0004 /* AX88179a */ #define AX179A 0x0004 /* AX88179a */
#define AX772D 0x0008 /* AX88772d */
}; };
struct axen_softc; struct axen_softc;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: usb_quirks.c,v 1.79 2024/08/27 12:41:18 sthen Exp $ */ /* $OpenBSD: usb_quirks.c,v 1.80 2024/10/07 13:27:13 sthen Exp $ */
/* $NetBSD: usb_quirks.c,v 1.45 2003/05/10 17:47:14 hamajima Exp $ */ /* $NetBSD: usb_quirks.c,v 1.45 2003/05/10 17:47:14 hamajima Exp $ */
/* $FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.30 2003/01/02 04:15:55 imp Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.30 2003/01/02 04:15:55 imp Exp $ */
@ -154,6 +154,8 @@ const struct usbd_quirk_entry {
ANY, { UQ_MS_VENDOR_BUTTONS }}, ANY, { UQ_MS_VENDOR_BUTTONS }},
/* Devices that need their data pipe held open */ /* Devices that need their data pipe held open */
{ USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MOUSE1,
ANY, { UQ_ALWAYS_OPEN }},
{ USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_OPTMOUSE, { USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_OPTMOUSE,
ANY, { UQ_ALWAYS_OPEN }}, ANY, { UQ_ALWAYS_OPEN }},
{ USB_VENDOR_HAILUCK, USB_PRODUCT_HAILUCK_KEYBOARD, { USB_VENDOR_HAILUCK, USB_PRODUCT_HAILUCK_KEYBOARD,

View file

@ -1,4 +1,4 @@
$OpenBSD: usbdevs,v 1.768 2024/08/27 12:31:18 sthen Exp $ $OpenBSD: usbdevs,v 1.769 2024/10/07 13:26:18 sthen Exp $
/* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */
/* /*
@ -1341,6 +1341,7 @@ product CHENSOURCE CM12402 0x933d CM12402 Eagle IR Cam
/* Cherry products */ /* Cherry products */
product CHERRY MY3000KBD 0x0001 My3000 keyboard product CHERRY MY3000KBD 0x0001 My3000 keyboard
product CHERRY MY3000HUB 0x0003 My3000 hub product CHERRY MY3000HUB 0x0003 My3000 hub
product CHERRY MOUSE1 0xb091 mouse
/* Chic Technology products */ /* Chic Technology products */
product CHIC MOUSE1 0x0001 mouse product CHIC MOUSE1 0x0001 mouse

View file

@ -1,10 +1,10 @@
/* $OpenBSD: usbdevs.h,v 1.780 2024/08/27 12:31:43 sthen Exp $ */ /* $OpenBSD: usbdevs.h,v 1.781 2024/10/07 13:26:32 sthen Exp $ */
/* /*
* THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
* *
* generated from: * generated from:
* OpenBSD: usbdevs,v 1.768 2024/08/27 12:31:18 sthen Exp * OpenBSD: usbdevs,v 1.769 2024/10/07 13:26:18 sthen Exp
*/ */
/* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */
@ -1348,6 +1348,7 @@
/* Cherry products */ /* Cherry products */
#define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 keyboard */ #define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 keyboard */
#define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 hub */ #define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 hub */
#define USB_PRODUCT_CHERRY_MOUSE1 0xb091 /* mouse */
/* Chic Technology products */ /* Chic Technology products */
#define USB_PRODUCT_CHIC_MOUSE1 0x0001 /* mouse */ #define USB_PRODUCT_CHIC_MOUSE1 0x0001 /* mouse */

View file

@ -1,10 +1,10 @@
/* $OpenBSD: usbdevs_data.h,v 1.774 2024/08/27 12:31:43 sthen Exp $ */ /* $OpenBSD: usbdevs_data.h,v 1.775 2024/10/07 13:26:32 sthen Exp $ */
/* /*
* THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
* *
* generated from: * generated from:
* OpenBSD: usbdevs,v 1.768 2024/08/27 12:31:18 sthen Exp * OpenBSD: usbdevs,v 1.769 2024/10/07 13:26:18 sthen Exp
*/ */
/* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */
@ -1929,6 +1929,10 @@ const struct usb_known_product usb_known_products[] = {
USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000HUB, USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000HUB,
"My3000 hub", "My3000 hub",
}, },
{
USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MOUSE1,
"mouse",
},
{ {
USB_VENDOR_CHIC, USB_PRODUCT_CHIC_MOUSE1, USB_VENDOR_CHIC, USB_PRODUCT_CHIC_MOUSE1,
"mouse", "mouse",

View file

@ -1,4 +1,4 @@
# $OpenBSD: genassym.sh,v 1.14 2021/03/06 09:20:49 jsg Exp $ # $OpenBSD: genassym.sh,v 1.15 2024/10/07 15:41:46 miod Exp $
# $NetBSD: genassym.sh,v 1.9 1998/04/25 19:48:27 matthias Exp $ # $NetBSD: genassym.sh,v 1.9 1998/04/25 19:48:27 matthias Exp $
# #
@ -55,6 +55,24 @@ BEGIN {
asmprint = ""; asmprint = "";
} }
function start_define() {
if (defining == 0) {
defining = 1;
printf("void f" FNR "(void);\n");
printf("void f" FNR "(void) {\n");
if (ccode)
call[FNR] = "f" FNR;
defining = 1;
}
}
function end_define() {
if (defining != 0) {
defining = 0;
printf("}\n");
}
}
$0 ~ /^[ \t]*#.*/ || $0 ~ /^[ \t]*$/ { $0 ~ /^[ \t]*#.*/ || $0 ~ /^[ \t]*$/ {
# Just ignore comments and empty lines # Just ignore comments and empty lines
next; next;
@ -68,10 +86,7 @@ $0 ~ /^config[ \t]/ {
} }
/^include[ \t]/ { /^include[ \t]/ {
if (defining != 0) { end_define();
defining = 0;
printf("}\n");
}
if (includes[$2] == 0) { if (includes[$2] == 0) {
printf("#%s\n", $0); printf("#%s\n", $0);
includes[$2] = 1; includes[$2] = 1;
@ -85,6 +100,7 @@ $0 ~ /^ifndef[ \t]/ ||
$0 ~ /^else/ || $0 ~ /^else/ ||
$0 ~ /^elif[ \t]/ || $0 ~ /^elif[ \t]/ ||
$0 ~ /^endif/ { $0 ~ /^endif/ {
start_define();
printf("#%s\n", $0); printf("#%s\n", $0);
next; next;
} }
@ -129,14 +145,7 @@ $0 ~ /^endif/ {
} }
/^define[ \t]/ { /^define[ \t]/ {
if (defining == 0) { start_define();
defining = 1;
printf("void f" FNR "(void);\n");
printf("void f" FNR "(void) {\n");
if (ccode)
call[FNR] = "f" FNR;
defining = 1;
}
value = $0 value = $0
gsub("^define[ \t]+[A-Za-z_][A-Za-z_0-9]*[ \t]+", "", value) gsub("^define[ \t]+[A-Za-z_][A-Za-z_0-9]*[ \t]+", "", value)
if (ccode) if (ccode)
@ -158,10 +167,7 @@ $0 ~ /^endif/ {
} }
END { END {
if (defining != 0) { end_define();
defining = 0;
printf("}\n");
}
if (ccode) { if (ccode) {
printf("int main(int argc, char **argv) {"); printf("int main(int argc, char **argv) {");
for (i in call) for (i in call)

View file

@ -1,4 +1,4 @@
/* $OpenBSD: options-table.c,v 1.180 2024/10/05 00:32:55 nicm Exp $ */ /* $OpenBSD: options-table.c,v 1.182 2024/10/07 12:58:36 nicm Exp $ */
/* /*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com> * Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -208,6 +208,7 @@ const struct options_name_map options_other_names[] = {
{ "display-panes-active-color", "display-panes-active-colour" }, { "display-panes-active-color", "display-panes-active-colour" },
{ "clock-mode-color", "clock-mode-colour" }, { "clock-mode-color", "clock-mode-colour" },
{ "cursor-color", "cursor-colour" }, { "cursor-color", "cursor-colour" },
{ "prompt-cursor-color", "prompt-cursor-colour" },
{ "pane-colors", "pane-colours" }, { "pane-colors", "pane-colours" },
{ NULL, NULL } { NULL, NULL }
}; };
@ -572,6 +573,18 @@ const struct options_table_entry options_table[] = {
"If changed, the new value applies only to new panes." "If changed, the new value applies only to new panes."
}, },
{ .name = "initial-repeat-time",
.type = OPTIONS_TABLE_NUMBER,
.scope = OPTIONS_TABLE_SESSION,
.minimum = 0,
.maximum = 10000,
.default_num = 0,
.unit = "milliseconds",
.text = "Time to wait for a key binding to repeat the first time the "
"key is pressed, if it is bound with the '-r' flag. "
"Subsequent presses use the 'repeat-time' option."
},
{ .name = "key-table", { .name = "key-table",
.type = OPTIONS_TABLE_STRING, .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION, .scope = OPTIONS_TABLE_SESSION,
@ -659,7 +672,7 @@ const struct options_table_entry options_table[] = {
.type = OPTIONS_TABLE_NUMBER, .type = OPTIONS_TABLE_NUMBER,
.scope = OPTIONS_TABLE_SESSION, .scope = OPTIONS_TABLE_SESSION,
.minimum = 0, .minimum = 0,
.maximum = SHRT_MAX, .maximum = 10000,
.default_num = 500, .default_num = 500,
.unit = "milliseconds", .unit = "milliseconds",
.text = "Time to wait for a key binding to repeat, if it is bound " .text = "Time to wait for a key binding to repeat, if it is bound "
@ -820,6 +833,21 @@ const struct options_table_entry options_table[] = {
.text = "Style of the status line." .text = "Style of the status line."
}, },
{ .name = "prompt-cursor-colour",
.type = OPTIONS_TABLE_COLOUR,
.scope = OPTIONS_TABLE_SESSION,
.default_num = 6,
.text = "Colour of the cursor when in the command prompt."
},
{ .name = "prompt-cursor-style",
.type = OPTIONS_TABLE_CHOICE,
.scope = OPTIONS_TABLE_SESSION,
.choices = options_table_cursor_style_list,
.default_num = 0,
.text = "Style of the cursor when in the command prompt."
},
{ .name = "update-environment", { .name = "update-environment",
.type = OPTIONS_TABLE_STRING, .type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_SESSION, .scope = OPTIONS_TABLE_SESSION,

View file

@ -1,4 +1,4 @@
/* $OpenBSD: server-client.c,v 1.411 2024/10/05 12:10:16 nicm Exp $ */ /* $OpenBSD: server-client.c,v 1.413 2024/10/07 12:58:36 nicm Exp $ */
/* /*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com> * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -1866,6 +1866,26 @@ server_client_update_latest(struct client *c)
notify_client("client-active", c); notify_client("client-active", c);
} }
/* Get repeat time. */
static u_int
server_client_repeat_time(struct client *c, struct key_binding *bd)
{
struct session *s = c->session;
u_int repeat, initial;
if (~bd->flags & KEY_BINDING_REPEAT)
return (0);
repeat = options_get_number(s->options, "repeat-time");
if (repeat == 0)
return (0);
if ((~c->flags & CLIENT_REPEAT) || bd->key != c->last_key) {
initial = options_get_number(s->options, "initial-repeat-time");
if (initial != 0)
repeat = initial;
}
return (repeat);
}
/* /*
* Handle data key input from client. This owns and can modify the key event it * Handle data key input from client. This owns and can modify the key event it
* is given and is responsible for freeing it. * is given and is responsible for freeing it.
@ -1884,7 +1904,7 @@ server_client_key_callback(struct cmdq_item *item, void *data)
struct timeval tv; struct timeval tv;
struct key_table *table, *first; struct key_table *table, *first;
struct key_binding *bd; struct key_binding *bd;
int xtimeout; u_int repeat;
uint64_t flags, prefix_delay; uint64_t flags, prefix_delay;
struct cmd_find_state fs; struct cmd_find_state fs;
key_code key0, prefix, prefix2; key_code key0, prefix, prefix2;
@ -2040,12 +2060,13 @@ try_again:
* If this is a repeating key, start the timer. Otherwise reset * If this is a repeating key, start the timer. Otherwise reset
* the client back to the root table. * the client back to the root table.
*/ */
xtimeout = options_get_number(s->options, "repeat-time"); repeat = server_client_repeat_time(c, bd);
if (xtimeout != 0 && (bd->flags & KEY_BINDING_REPEAT)) { if (repeat != 0) {
c->flags |= CLIENT_REPEAT; c->flags |= CLIENT_REPEAT;
c->last_key = bd->key;
tv.tv_sec = xtimeout / 1000; tv.tv_sec = repeat / 1000;
tv.tv_usec = (xtimeout % 1000) * 1000L; tv.tv_usec = (repeat % 1000) * 1000L;
evtimer_del(&c->repeat_timer); evtimer_del(&c->repeat_timer);
evtimer_add(&c->repeat_timer, &tv); evtimer_add(&c->repeat_timer, &tv);
} else { } else {
@ -2452,7 +2473,7 @@ server_client_reset_state(struct client *c)
/* Move cursor to pane cursor and offset. */ /* Move cursor to pane cursor and offset. */
if (c->prompt_string != NULL) { if (c->prompt_string != NULL) {
n = options_get_number(c->session->options, "status-position"); n = options_get_number(oo, "status-position");
if (n == 0) if (n == 0)
cy = 0; cy = 0;
else { else {
@ -2463,22 +2484,37 @@ server_client_reset_state(struct client *c)
cy = tty->sy - n; cy = tty->sy - n;
} }
cx = c->prompt_cursor; cx = c->prompt_cursor;
mode &= ~MODE_CURSOR;
} else if (c->overlay_draw == NULL) {
cursor = 0;
tty_window_offset(tty, &ox, &oy, &sx, &sy);
if (wp->xoff + s->cx >= ox && wp->xoff + s->cx <= ox + sx &&
wp->yoff + s->cy >= oy && wp->yoff + s->cy <= oy + sy) {
cursor = 1;
cx = wp->xoff + s->cx - ox; n = options_get_number(oo, "prompt-cursor-colour");
cy = wp->yoff + s->cy - oy; s->default_ccolour = n;
n = options_get_number(oo, "prompt-cursor-style");
screen_set_cursor_style(n, &s->default_cstyle,
&s->default_mode);
} else {
n = options_get_number(wp->options, "cursor-colour");
s->default_ccolour = n;
n = options_get_number(wp->options, "cursor-style");
screen_set_cursor_style(n, &s->default_cstyle,
&s->default_mode);
if (status_at_line(c) == 0) if (c->overlay_draw == NULL) {
cy += status_line_size(c); cursor = 0;
tty_window_offset(tty, &ox, &oy, &sx, &sy);
if (wp->xoff + s->cx >= ox &&
wp->xoff + s->cx <= ox + sx &&
wp->yoff + s->cy >= oy &&
wp->yoff + s->cy <= oy + sy) {
cursor = 1;
cx = wp->xoff + s->cx - ox;
cy = wp->yoff + s->cy - oy;
if (status_at_line(c) == 0)
cy += status_line_size(c);
}
if (!cursor)
mode &= ~MODE_CURSOR;
} }
if (!cursor)
mode &= ~MODE_CURSOR;
} }
log_debug("%s: cursor to %u,%u", __func__, cx, cy); log_debug("%s: cursor to %u,%u", __func__, cx, cy);
tty_cursor(tty, cx, cy); tty_cursor(tty, cx, cy);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: status.c,v 1.246 2024/10/04 19:16:13 nicm Exp $ */ /* $OpenBSD: status.c,v 1.247 2024/10/07 12:58:36 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -660,7 +660,7 @@ status_prompt_set(struct client *c, struct cmd_find_state *fs,
c->prompt_mode = PROMPT_ENTRY; c->prompt_mode = PROMPT_ENTRY;
if (~flags & PROMPT_INCREMENTAL) if (~flags & PROMPT_INCREMENTAL)
c->tty.flags |= (TTY_NOCURSOR|TTY_FREEZE); c->tty.flags |= TTY_FREEZE;
c->flags |= CLIENT_REDRAWSTATUS; c->flags |= CLIENT_REDRAWSTATUS;
if (flags & PROMPT_INCREMENTAL) if (flags & PROMPT_INCREMENTAL)
@ -738,7 +738,7 @@ status_prompt_redraw(struct client *c)
struct screen old_screen; struct screen old_screen;
u_int i, lines, offset, left, start, width; u_int i, lines, offset, left, start, width;
u_int pcursor, pwidth, promptline; u_int pcursor, pwidth, promptline;
struct grid_cell gc, cursorgc; struct grid_cell gc;
struct format_tree *ft; struct format_tree *ft;
if (c->tty.sx == 0 || c->tty.sy == 0) if (c->tty.sx == 0 || c->tty.sy == 0)
@ -761,9 +761,6 @@ status_prompt_redraw(struct client *c)
style_apply(&gc, s->options, "message-style", ft); style_apply(&gc, s->options, "message-style", ft);
format_free(ft); format_free(ft);
memcpy(&cursorgc, &gc, sizeof cursorgc);
cursorgc.attr ^= GRID_ATTR_REVERSE;
start = format_width(c->prompt_string); start = format_width(c->prompt_string);
if (start > c->tty.sx) if (start > c->tty.sx)
start = c->tty.sx; start = c->tty.sx;
@ -808,16 +805,9 @@ status_prompt_redraw(struct client *c)
if (width > offset + pwidth) if (width > offset + pwidth)
break; break;
if (i != c->prompt_index) { utf8_copy(&gc.data, &c->prompt_buffer[i]);
utf8_copy(&gc.data, &c->prompt_buffer[i]); screen_write_cell(&ctx, &gc);
screen_write_cell(&ctx, &gc);
} else {
utf8_copy(&cursorgc.data, &c->prompt_buffer[i]);
screen_write_cell(&ctx, &cursorgc);
}
} }
if (sl->active->cx < screen_size_x(sl->active) && c->prompt_index >= i)
screen_write_putc(&ctx, &cursorgc, ' ');
finished: finished:
screen_write_stop(&ctx); screen_write_stop(&ctx);

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: tmux.1,v 1.962 2024/10/05 00:32:55 nicm Exp $ .\" $OpenBSD: tmux.1,v 1.964 2024/10/07 12:58:36 nicm Exp $
.\" .\"
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> .\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
.\" .\"
@ -14,7 +14,7 @@
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.Dd $Mdocdate: October 5 2024 $ .Dd $Mdocdate: October 7 2024 $
.Dt TMUX 1 .Dt TMUX 1
.Os .Os
.Sh NAME .Sh NAME
@ -3687,8 +3687,10 @@ command used to switch to them from a key binding.
The The
.Fl r .Fl r
flag indicates this key may repeat, see the flag indicates this key may repeat, see the
.Ic initial-repeat-time
and
.Ic repeat-time .Ic repeat-time
option. options.
.Fl N .Fl N
attaches a note to the key (shown with attaches a note to the key (shown with
.Ic list-keys .Ic list-keys
@ -4436,6 +4438,20 @@ is in milliseconds.
Set the maximum number of lines held in window history. Set the maximum number of lines held in window history.
This setting applies only to new windows - existing window histories are not This setting applies only to new windows - existing window histories are not
resized and retain the limit at the point they were created. resized and retain the limit at the point they were created.
.It Ic initial-repeat-time Ar time
Set the time in milliseconds for the initial repeat when a key is bound with the
.Fl r
flag.
This allows multiple commands to be entered without pressing the prefix key
again.
See also the
.Ic repeat-time
option.
If
.Ic initial-repeat-time
is zero,
.Ic repeat-time
is used for the first key press.
.It Ic key-table Ar key-table .It Ic key-table Ar key-table
Set the default key table to Set the default key table to
.Ar key-table .Ar key-table
@ -4534,6 +4550,13 @@ waits after
.Ic prefix .Ic prefix
is input before dismissing it. is input before dismissing it.
Can be set to zero to disable any timeout. Can be set to zero to disable any timeout.
.It Ic prompt-cursor-colour Ar colour
Set the colour of the cursor in the command prompt.
.It Ic prompt-cursor-style Ar style
Set the style of the cursor in the command prompt.
See the
.Ic cursor-style
options for available styles.
.It Xo Ic renumber-windows .It Xo Ic renumber-windows
.Op Ic on | off .Op Ic on | off
.Xc .Xc
@ -4544,7 +4567,7 @@ This respects the
option if it has been set. option if it has been set.
If off, do not renumber the windows. If off, do not renumber the windows.
.It Ic repeat-time Ar time .It Ic repeat-time Ar time
Allow multiple commands to be entered without pressing the prefix-key again Allow multiple commands to be entered without pressing the prefix key again
in the specified in the specified
.Ar time .Ar time
milliseconds (the default is 500). milliseconds (the default is 500).
@ -4555,6 +4578,9 @@ flag to
Repeat is enabled for the default keys bound to the Repeat is enabled for the default keys bound to the
.Ic resize-pane .Ic resize-pane
command. command.
See also the
.Ic initial-repeat-time
option.
.It Xo Ic set-titles .It Xo Ic set-titles
.Op Ic on | off .Op Ic on | off
.Xc .Xc

View file

@ -1,4 +1,4 @@
/* $OpenBSD: tmux.h,v 1.1233 2024/10/04 19:16:13 nicm Exp $ */ /* $OpenBSD: tmux.h,v 1.1234 2024/10/07 08:50:47 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -1909,6 +1909,7 @@ struct client {
char *exit_message; char *exit_message;
struct key_table *keytable; struct key_table *keytable;
key_code last_key;
uint64_t redraw_panes; uint64_t redraw_panes;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: cert.c,v 1.150 2024/07/08 15:31:58 tb Exp $ */ /* $OpenBSD: cert.c,v 1.151 2024/10/07 12:19:52 tb Exp $ */
/* /*
* Copyright (c) 2022 Theo Buehler <tb@openbsd.org> * Copyright (c) 2022 Theo Buehler <tb@openbsd.org>
* Copyright (c) 2021 Job Snijders <job@openbsd.org> * Copyright (c) 2021 Job Snijders <job@openbsd.org>
@ -1085,11 +1085,11 @@ ta_parse(const char *fn, struct cert *p, const unsigned char *pkey,
"pubkey does not match TAL pubkey", fn); "pubkey does not match TAL pubkey", fn);
goto badcert; goto badcert;
} }
if (p->notbefore >= now) { if (p->notbefore > now) {
warnx("%s: certificate not yet valid", fn); warnx("%s: certificate not yet valid", fn);
goto badcert; goto badcert;
} }
if (p->notafter <= now) { if (p->notafter < now) {
warnx("%s: certificate has expired", fn); warnx("%s: certificate has expired", fn);
goto badcert; goto badcert;
} }

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: rpki-client.8,v 1.111 2024/09/10 18:37:42 tb Exp $ .\" $OpenBSD: rpki-client.8,v 1.112 2024/10/07 14:21:51 tb Exp $
.\" .\"
.\" Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv> .\" Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv>
.\" .\"
@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.Dd $Mdocdate: September 10 2024 $ .Dd $Mdocdate: October 7 2024 $
.Dt RPKI-CLIENT 8 .Dt RPKI-CLIENT 8
.Os .Os
.Sh NAME .Sh NAME
@ -453,7 +453,7 @@ agreement regarding ARIN service restrictions.
.Pp .Pp
.Rs .Rs
.%T Relying Party Handling of RPKI CRL Number Extensions .%T Relying Party Handling of RPKI CRL Number Extensions
.%U https://datatracker.ietf.org/doc/html/draft-spaghetti-sidrops-rpki-crl-numbers .%U https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-rpki-crl-numbers
.%D May, 2024 .%D May, 2024
.Re .Re
.Pp .Pp

View file

@ -1,4 +1,4 @@
/* $OpenBSD: x509.c,v 1.101 2024/09/12 10:33:25 tb Exp $ */ /* $OpenBSD: x509.c,v 1.103 2024/10/07 14:45:33 tb Exp $ */
/* /*
* Copyright (c) 2022 Theo Buehler <tb@openbsd.org> * Copyright (c) 2022 Theo Buehler <tb@openbsd.org>
* Copyright (c) 2021 Claudio Jeker <claudio@openbsd.org> * Copyright (c) 2021 Claudio Jeker <claudio@openbsd.org>
@ -1023,11 +1023,6 @@ x509_seqnum_to_bn(const char *fn, const char *descr, const ASN1_INTEGER *i)
{ {
BIGNUM *bn = NULL; BIGNUM *bn = NULL;
if (ASN1_STRING_length(i) > 20) {
warnx("%s: %s should fit in 20 octets", fn, descr);
goto out;
}
if ((bn = ASN1_INTEGER_to_BN(i, NULL)) == NULL) { if ((bn = ASN1_INTEGER_to_BN(i, NULL)) == NULL) {
warnx("%s: %s: ASN1_INTEGER_to_BN error", fn, descr); warnx("%s: %s: ASN1_INTEGER_to_BN error", fn, descr);
goto out; goto out;
@ -1038,6 +1033,12 @@ x509_seqnum_to_bn(const char *fn, const char *descr, const ASN1_INTEGER *i)
goto out; goto out;
} }
/* Reject values larger than or equal to 2^159. */
if (BN_num_bytes(bn) > 20 || BN_is_bit_set(bn, 159)) {
warnx("%s: %s should fit in 20 octets", fn, descr);
goto out;
}
return bn; return bn;
out: out:

View file

@ -1,4 +1,4 @@
.\" $OpenBSD: sysupgrade.8,v 1.18 2024/09/25 16:26:37 florian Exp $ .\" $OpenBSD: sysupgrade.8,v 1.20 2024/10/07 15:57:15 jmc Exp $
.\" .\"
.\" Copyright (c) 2019 Florian Obser <florian@openbsd.org> .\" Copyright (c) 2019 Florian Obser <florian@openbsd.org>
.\" .\"
@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.Dd $Mdocdate: September 25 2024 $ .Dd $Mdocdate: October 7 2024 $
.Dt SYSUPGRADE 8 .Dt SYSUPGRADE 8
.Os .Os
.Sh NAME .Sh NAME
@ -75,6 +75,15 @@ Upgrade to a snapshot.
The default is to upgrade to the next release. The default is to upgrade to the next release.
.El .El
.Pp .Pp
When updating to a release or snapshot which lacks the required signify
key in
.Pa /etc/signify ,
the missing key will be downloaded in a secure way.
In the usual case, the key will already be present because
.Ox
releases ship with the current key, the next key, and a collection of
older keys.
.Pp
See See
.Xr upgrade.site 5 .Xr upgrade.site 5
for how to customize the upgrade process. for how to customize the upgrade process.

View file

@ -1,6 +1,6 @@
#!/bin/ksh #!/bin/ksh
# #
# $OpenBSD: sysupgrade.sh,v 1.54 2024/09/25 13:55:23 sthen Exp $ # $OpenBSD: sysupgrade.sh,v 1.55 2024/10/07 13:21:53 deraadt Exp $
# #
# Copyright (c) 1997-2015 Todd Miller, Theo de Raadt, Ken Westerback # Copyright (c) 1997-2015 Todd Miller, Theo de Raadt, Ken Westerback
# Copyright (c) 2015 Robert Peichaer <rpe@openbsd.org> # Copyright (c) 2015 Robert Peichaer <rpe@openbsd.org>
@ -140,13 +140,25 @@ if ! unpriv -f SHA256.sig ftp -N sysupgrade -Vmo SHA256.sig ${URL}SHA256.sig; th
fi fi
fi fi
SHORT_VERSION=${NEXT_VERSION%.*}${NEXT_VERSION#*.} # The key extracted from SHA256.sig must precisely match a pattern
if ! [[ -r /etc/signify/secbsd-${SHORT_VERSION}-base.pub ]]; then KEY=$(head -1 < SHA256.sig | cut -d' ' -f5 | \
echo "${0##*/}: signify key not found; download into /etc/signify from" 1>&2 egrep '^secbsd-[[:digit:]]{2,3}-base.pub$' || true)
echo "https://ftp.secbsd.org/pub/SecBSD/signify/secbsd-${SHORT_VERSION}-base.pub" 1>&2 if [[ -z $KEY ]]; then
echo "Invalid SHA256.sig file"
exit 1 exit 1
fi fi
# If required key is not in the system, get it from a signed bundle
if ! [[ -r /etc/signify/$KEY ]]; then
HAVEKEY=$(cd /etc/signify && ls -1 secbsd-*-base.pub | \
tail -2 | head -1 | cut -d- -f2)
BUNDLE=sigbundle-${HAVEKEY}.tgz
echo "Adding additional key $KEY from bundle $BUNDLE"
unpriv -f ${BUNDLE} ftp -N sysupgrade -Vmo $BUNDLE https://ftp.secbsd.org/pub/SecBSD/signify/$BUNDLE
signify -Vzq -m - -x $BUNDLE | (cd /etc/signify && tar xfz - $KEY)
rm $BUNDLE
fi
unpriv -f SHA256 signify -Ve -x SHA256.sig -m SHA256 unpriv -f SHA256 signify -Ve -x SHA256.sig -m SHA256
rm SHA256.sig rm SHA256.sig

View file

@ -1,6 +1,6 @@
# generated automatically by aclocal 1.16.2 -*- Autoconf -*- # generated automatically by aclocal 1.16.5 -*- Autoconf -*-
# Copyright (C) 1996-2020 Free Software Foundation, Inc. # Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -14,7 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
# #
# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
# Foundation, Inc.
# Written by Gordon Matzigkeit, 1996 # Written by Gordon Matzigkeit, 1996
# #
# This file is free software; the Free Software Foundation gives # This file is free software; the Free Software Foundation gives
@ -45,7 +46,7 @@ m4_define([_LT_COPYING], [dnl
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
]) ])
# serial 58 LT_INIT # serial 59 LT_INIT
# LT_PREREQ(VERSION) # LT_PREREQ(VERSION)
@ -195,6 +196,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl
m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CMD_RELOAD])dnl
m4_require([_LT_DECL_FILECMD])dnl
m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl
m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl
@ -233,8 +235,8 @@ esac
ofile=libtool ofile=libtool
can_build_shared=yes can_build_shared=yes
# All known linkers require a '.a' archive for static linking (except MSVC, # All known linkers require a '.a' archive for static linking (except MSVC and
# which needs '.lib'). # ICC, which need '.lib').
libext=a libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld with_gnu_ld=$lt_cv_prog_gnu_ld
@ -786,7 +788,7 @@ _LT_EOF
# if finds mixed CR/LF and LF-only lines. Since sed operates in # if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem # text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too? # is reportedly fixed, but why not run on old versions too?
sed '$q' "$ltmain" >> "$cfgfile" \ $SED '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1) || (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" || mv -f "$cfgfile" "$ofile" ||
@ -1048,8 +1050,8 @@ int forced_loaded() { return 2;}
_LT_EOF _LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
$AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
$RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
cat > conftest.c << _LT_EOF cat > conftest.c << _LT_EOF
@ -1073,17 +1075,12 @@ _LT_EOF
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*) darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
darwin*) # darwin 5.x on darwin*)
# if running on 10.5 or later, the deployment target defaults case $MACOSX_DEPLOYMENT_TARGET,$host in
# to the OS version, if on x86, and 10.4, the deployment 10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
# target defaults to 10.4. Don't you love it? _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in *)
10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[[012]][[,.]]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac esac
;; ;;
esac esac
@ -1132,12 +1129,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
output_verbose_link_cmd=func_echo_all output_verbose_link_cmd=func_echo_all
_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" _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"
_LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
_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" _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"
_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" _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"
m4_if([$1], [CXX], m4_if([$1], [CXX],
[ if test yes != "$lt_cv_apple_cc_single_mod"; then [ if test yes != "$lt_cv_apple_cc_single_mod"; then
_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" _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"
_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" _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"
fi fi
],[]) ],[])
else else
@ -1251,7 +1248,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
# _LT_WITH_SYSROOT # _LT_WITH_SYSROOT
# ---------------- # ----------------
AC_DEFUN([_LT_WITH_SYSROOT], AC_DEFUN([_LT_WITH_SYSROOT],
[AC_MSG_CHECKING([for sysroot]) [m4_require([_LT_DECL_SED])dnl
AC_MSG_CHECKING([for sysroot])
AC_ARG_WITH([sysroot], AC_ARG_WITH([sysroot],
[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
[Search for dependent libraries within DIR (or the compiler's sysroot [Search for dependent libraries within DIR (or the compiler's sysroot
@ -1268,7 +1266,7 @@ case $with_sysroot in #(
fi fi
;; #( ;; #(
/*) /*)
lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
;; #( ;; #(
no|'') no|'')
;; #( ;; #(
@ -1298,7 +1296,7 @@ ia64-*-hpux*)
# options accordingly. # options accordingly.
echo 'int i;' > conftest.$ac_ext echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*ELF-32*) *ELF-32*)
HPUX_IA64_MODE=32 HPUX_IA64_MODE=32
;; ;;
@ -1315,7 +1313,7 @@ ia64-*-hpux*)
echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
if test yes = "$lt_cv_prog_gnu_ld"; then if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
LD="${LD-ld} -melf32bsmip" LD="${LD-ld} -melf32bsmip"
;; ;;
@ -1327,7 +1325,7 @@ ia64-*-hpux*)
;; ;;
esac esac
else else
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
LD="${LD-ld} -32" LD="${LD-ld} -32"
;; ;;
@ -1349,7 +1347,7 @@ mips64*-*linux*)
echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
emul=elf emul=elf
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
emul="${emul}32" emul="${emul}32"
;; ;;
@ -1357,7 +1355,7 @@ mips64*-*linux*)
emul="${emul}64" emul="${emul}64"
;; ;;
esac esac
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*MSB*) *MSB*)
emul="${emul}btsmip" emul="${emul}btsmip"
;; ;;
@ -1365,7 +1363,7 @@ mips64*-*linux*)
emul="${emul}ltsmip" emul="${emul}ltsmip"
;; ;;
esac esac
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*N32*) *N32*)
emul="${emul}n32" emul="${emul}n32"
;; ;;
@ -1385,14 +1383,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# not appear in the list. # not appear in the list.
echo 'int i;' > conftest.$ac_ext echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*32-bit*) *32-bit*)
case $host in case $host in
x86_64-*kfreebsd*-gnu) x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd" LD="${LD-ld} -m elf_i386_fbsd"
;; ;;
x86_64-*linux*) x86_64-*linux*)
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*x86-64*) *x86-64*)
LD="${LD-ld} -m elf32_x86_64" LD="${LD-ld} -m elf32_x86_64"
;; ;;
@ -1460,7 +1458,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# options accordingly. # options accordingly.
echo 'int i;' > conftest.$ac_ext echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*64-bit*) *64-bit*)
case $lt_cv_prog_gnu_ld in case $lt_cv_prog_gnu_ld in
yes*) yes*)
@ -1499,9 +1497,22 @@ need_locks=$enable_libtool_lock
m4_defun([_LT_PROG_AR], m4_defun([_LT_PROG_AR],
[AC_CHECK_TOOLS(AR, [ar], false) [AC_CHECK_TOOLS(AR, [ar], false)
: ${AR=ar} : ${AR=ar}
: ${AR_FLAGS=cru}
_LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR], [1], [The archiver])
_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
# Use ARFLAGS variable as AR's operation code to sync the variable naming with
# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
# higher priority because thats what people were doing historically (setting
# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
# variable obsoleted/removed.
test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
lt_ar_flags=$AR_FLAGS
_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
[Flags to create an archive])
AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
[lt_cv_ar_at_file=no [lt_cv_ar_at_file=no
@ -1720,7 +1731,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
lt_cv_sys_max_cmd_len=8192; lt_cv_sys_max_cmd_len=8192;
;; ;;
bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd* | secbsd*) bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd* | secbsd*)
# This has been around since 386BSD, at least. Likely further. # This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@ -1763,7 +1774,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
sysv5* | sco5v6* | sysv4.2uw2*) sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then if test -n "$kargmax"; then
lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'`
else else
lt_cv_sys_max_cmd_len=32768 lt_cv_sys_max_cmd_len=32768
fi fi
@ -2213,26 +2224,35 @@ m4_defun([_LT_CMD_STRIPLIB],
striplib= striplib=
old_striplib= old_striplib=
AC_MSG_CHECKING([whether stripping libraries is possible]) AC_MSG_CHECKING([whether stripping libraries is possible])
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then if test -z "$STRIP"; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" AC_MSG_RESULT([no])
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
AC_MSG_RESULT([yes])
else else
# FIXME - insert some real tests, host_os isn't really good enough if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
case $host_os in old_striplib="$STRIP --strip-debug"
darwin*) striplib="$STRIP --strip-unneeded"
if test -n "$STRIP"; then AC_MSG_RESULT([yes])
else
case $host_os in
darwin*)
# FIXME - insert some real tests, host_os isn't really good enough
striplib="$STRIP -x" striplib="$STRIP -x"
old_striplib="$STRIP -S" old_striplib="$STRIP -S"
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
else ;;
freebsd*)
if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
old_striplib="$STRIP --strip-debug"
striplib="$STRIP --strip-unneeded"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
;;
*)
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
fi ;;
;; esac
*) fi
AC_MSG_RESULT([no])
;;
esac
fi fi
_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
_LT_DECL([], [striplib], [1]) _LT_DECL([], [striplib], [1])
@ -2555,7 +2575,7 @@ cygwin* | mingw* | pw32* | cegcc*)
case $host_os in case $host_os in
cygwin*) cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib' # Cygwin DLLs use 'cyg' prefix rather than 'lib'
soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
m4_if([$1], [],[ m4_if([$1], [],[
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
;; ;;
@ -2565,14 +2585,14 @@ m4_if([$1], [],[
;; ;;
pw32*) pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib' # pw32 DLLs use 'pw' prefix rather than 'lib'
library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
;; ;;
esac esac
dynamic_linker='Win32 ld.exe' dynamic_linker='Win32 ld.exe'
;; ;;
*,cl*) *,cl* | *,icl*)
# Native MSVC # Native MSVC or ICC
libname_spec='$name' libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib' library_names_spec='$libname.dll.lib'
@ -2591,7 +2611,7 @@ m4_if([$1], [],[
done done
IFS=$lt_save_ifs IFS=$lt_save_ifs
# Convert to MSYS style. # Convert to MSYS style.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
;; ;;
cygwin*) cygwin*)
# Convert to unix form, then to dos form, then back to unix form # Convert to unix form, then to dos form, then back to unix form
@ -2628,7 +2648,7 @@ m4_if([$1], [],[
;; ;;
*) *)
# Assume MSVC wrapper # Assume MSVC and ICC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe' dynamic_linker='Win32 ld.exe'
;; ;;
@ -2661,7 +2681,7 @@ dgux*)
shlibpath_var=LD_LIBRARY_PATH shlibpath_var=LD_LIBRARY_PATH
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
# DragonFly does not have aout. When/if they implement a new # DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this. # versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then if test -x /usr/bin/objformat; then
@ -3463,7 +3483,7 @@ beos*)
bsdi[[45]]*) bsdi[[45]]*)
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_cmd='$FILECMD -L'
lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_file_magic_test_file=/shlib/libc.so
;; ;;
@ -3497,14 +3517,14 @@ darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all lt_cv_deplibs_check_method=pass_all
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in case $host_cpu in
i*86 ) i*86 )
# Not sure whether the presence of OpenBSD here was a mistake. # Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up. # Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly|SecBSD)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly|SecBSD)/i[[3-9]]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;; ;;
esac esac
@ -3518,7 +3538,7 @@ haiku*)
;; ;;
hpux10.20* | hpux11*) hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
case $host_cpu in case $host_cpu in
ia64*) ia64*)
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
@ -3565,7 +3585,7 @@ netbsd*)
newos6*) newos6*)
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
lt_cv_file_magic_test_file=/usr/lib/libnls.so lt_cv_file_magic_test_file=/usr/lib/libnls.so
;; ;;
@ -3692,13 +3712,13 @@ else
mingw*) lt_bad_file=conftest.nm/nofile ;; mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;; *) lt_bad_file=/dev/null ;;
esac esac
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*) *$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B" lt_cv_path_NM="$tmp_nm -B"
break 2 break 2
;; ;;
*) *)
case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
*/dev/null*) */dev/null*)
lt_cv_path_NM="$tmp_nm -p" lt_cv_path_NM="$tmp_nm -p"
break 2 break 2
@ -3724,7 +3744,7 @@ else
# Let the user override the test. # Let the user override the test.
else else
AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
*COFF*) *COFF*)
DUMPBIN="$DUMPBIN -symbols -headers" DUMPBIN="$DUMPBIN -symbols -headers"
;; ;;
@ -3964,7 +3984,7 @@ esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import. # Gets list of data symbols to import.
lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables. # Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@ -3982,20 +4002,20 @@ fi
# Transform an extracted symbol line into a proper C declaration. # Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently, # Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach. # so use this general approach.
lt_cv_sys_global_symbol_to_cdecl="sed -n"\ lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
$lt_cdecl_hook\ $lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address # Transform an extracted symbol line into symbol name and symbol address
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
$lt_c_name_hook\ $lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and # Transform an extracted symbol line into symbol name with lib prefix and
# symbol address. # symbol address.
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
$lt_c_name_lib_hook\ $lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@ -4019,7 +4039,7 @@ for ac_symprfx in "" "_"; do
if test "$lt_cv_nm_interface" = "MS dumpbin"; then if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function, # Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable. # D for any global variable and I for any imported variable.
# Also find C++ and __fastcall symbols from MSVC++, # Also find C++ and __fastcall symbols from MSVC++ or ICC,
# which start with @ or ?. # which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK ['"\ lt_cv_sys_global_symbol_pipe="$AWK ['"\
" {last_section=section; section=\$ 3};"\ " {last_section=section; section=\$ 3};"\
@ -4037,9 +4057,9 @@ for ac_symprfx in "" "_"; do
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx]" " ' prfx=^$ac_symprfx]"
else else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi fi
lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
# Check to see that the pipe works correctly. # Check to see that the pipe works correctly.
pipe_works=no pipe_works=no
@ -4326,7 +4346,7 @@ m4_if([$1], [CXX], [
;; ;;
esac esac
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
# FreeBSD uses GNU C++ # FreeBSD uses GNU C++
;; ;;
hpux9* | hpux10* | hpux11*) hpux9* | hpux10* | hpux11*)
@ -4409,7 +4429,7 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
;; ;;
*) *)
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ C*) *Sun\ C*)
# Sun C++ 5.9 # Sun C++ 5.9
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@ -4745,7 +4765,7 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
;; ;;
*) *)
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker # Sun Fortran 8.3 passes all unrecognized flags to the linker
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@ -4928,7 +4948,7 @@ m4_if([$1], [CXX], [
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
_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' _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'
else else
_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' _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'
fi fi
;; ;;
pw32*) pw32*)
@ -4936,7 +4956,7 @@ m4_if([$1], [CXX], [
;; ;;
cygwin* | mingw* | cegcc*) cygwin* | mingw* | cegcc*)
case $cc_basename in case $cc_basename in
cl*) cl* | icl*)
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
;; ;;
*) *)
@ -4993,15 +5013,15 @@ dnl Note also adjust exclude_expsyms for C++ above.
case $host_os in case $host_os in
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using # When not using gcc, we currently assume that we are using
# Microsoft Visual C++. # Microsoft Visual C++ or Intel C++ Compiler.
if test yes != "$GCC"; then if test yes != "$GCC"; then
with_gnu_ld=no with_gnu_ld=no
fi fi
;; ;;
interix*) interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
with_gnu_ld=yes with_gnu_ld=yes
;; ;;
openbsd* | bitrig* | secbsd*) openbsd* | bitrig* | secbsd*)
@ -5053,7 +5073,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
_LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)=
fi fi
supports_anon_versioning=no supports_anon_versioning=no
case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;; *GNU\ gold*) supports_anon_versioning=yes ;;
*\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@ -5165,6 +5185,7 @@ _LT_EOF
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
_LT_TAGVAR(file_list_spec, $1)='@'
;; ;;
interix[[3-9]]*) interix[[3-9]]*)
@ -5179,7 +5200,7 @@ _LT_EOF
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space. # time. Moving up from 0x10000000 also allows more sbrk(2) space.
_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' _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'
_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' _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'
;; ;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@ -5222,7 +5243,7 @@ _LT_EOF
_LT_TAGVAR(compiler_needs_object, $1)=yes _LT_TAGVAR(compiler_needs_object, $1)=yes
;; ;;
esac esac
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ C*) # Sun C 5.9 *Sun\ C*) # Sun C 5.9
_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' _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'
_LT_TAGVAR(compiler_needs_object, $1)=yes _LT_TAGVAR(compiler_needs_object, $1)=yes
@ -5234,7 +5255,7 @@ _LT_EOF
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi fi
@ -5250,7 +5271,7 @@ _LT_EOF
_LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi fi
@ -5382,7 +5403,7 @@ _LT_EOF
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
_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' _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'
else else
_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' _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'
fi fi
aix_use_runtimelinking=no aix_use_runtimelinking=no
@ -5565,12 +5586,12 @@ _LT_EOF
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using # When not using gcc, we currently assume that we are using
# Microsoft Visual C++. # Microsoft Visual C++ or Intel C++ Compiler.
# hardcode_libdir_flag_spec is actually meaningless, as there is # hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs. # no search path for DLLs.
case $cc_basename in case $cc_basename in
cl*) cl* | icl*)
# Native MSVC # Native MSVC or ICC
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(always_export_symbols, $1)=yes
@ -5611,7 +5632,7 @@ _LT_EOF
fi' fi'
;; ;;
*) *)
# Assume MSVC wrapper # Assume MSVC and ICC wrapper
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
# Tell ltmain to make .lib files, not .a files. # Tell ltmain to make .lib files, not .a files.
@ -5659,7 +5680,7 @@ _LT_EOF
;; ;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries. # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct, $1)=yes
@ -5870,6 +5891,7 @@ _LT_EOF
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
_LT_TAGVAR(file_list_spec, $1)='@'
;; ;;
osf3*) osf3*)
@ -6636,8 +6658,8 @@ if test yes != "$_lt_caught_CXX_error"; then
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
case $GXX,$cc_basename in case $GXX,$cc_basename in
,cl* | no,cl*) ,cl* | no,cl* | ,icl* | no,icl*)
# Native MSVC # Native MSVC or ICC
# hardcode_libdir_flag_spec is actually meaningless, as there is # hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs. # no search path for DLLs.
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
@ -6735,6 +6757,7 @@ if test yes != "$_lt_caught_CXX_error"; then
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
_LT_TAGVAR(file_list_spec, $1)='@'
;; ;;
dgux*) dgux*)
@ -6765,7 +6788,7 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(archive_cmds_need_lc, $1)=no
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
# FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
# conventions # conventions
_LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(ld_shlibs, $1)=yes
@ -6902,7 +6925,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space. # time. Moving up from 0x10000000 also allows more sbrk(2) space.
_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' _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'
_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' _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'
;; ;;
irix5* | irix6*) irix5* | irix6*)
case $cc_basename in case $cc_basename in
@ -7042,13 +7065,13 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi fi
;; ;;
*) *)
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ C*) *Sun\ C*)
# Sun C++ 5.9 # Sun C++ 5.9
_LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@ -8186,6 +8209,14 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
AC_SUBST([DLLTOOL]) AC_SUBST([DLLTOOL])
]) ])
# _LT_DECL_FILECMD
# ----------------
# Check for a file(cmd) program that can be used to detect file type and magic
m4_defun([_LT_DECL_FILECMD],
[AC_CHECK_TOOL([FILECMD], [file], [:])
_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
])# _LD_DECL_FILECMD
# _LT_DECL_SED # _LT_DECL_SED
# ------------ # ------------
# Check for a fully-functional sed program, that truncates # Check for a fully-functional sed program, that truncates
@ -8365,8 +8396,8 @@ _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
# Helper functions for option handling. -*- Autoconf -*- # Helper functions for option handling. -*- Autoconf -*-
# #
# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free
# Foundation, Inc. # Software Foundation, Inc.
# Written by Gary V. Vaughan, 2004 # Written by Gary V. Vaughan, 2004
# #
# This file is free software; the Free Software Foundation gives # This file is free software; the Free Software Foundation gives
@ -8797,7 +8828,7 @@ LT_OPTION_DEFINE([LTDL_INIT], [convenience],
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
# #
# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
# Foundation, Inc. # Foundation, Inc.
# Written by Gary V. Vaughan, 2004 # Written by Gary V. Vaughan, 2004
# #
@ -8922,7 +8953,8 @@ m4_define([lt_dict_filter],
# ltversion.m4 -- version numbers -*- Autoconf -*- # ltversion.m4 -- version numbers -*- Autoconf -*-
# #
# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
# Inc.
# Written by Scott James Remnant, 2004 # Written by Scott James Remnant, 2004
# #
# This file is free software; the Free Software Foundation gives # This file is free software; the Free Software Foundation gives
@ -8931,23 +8963,23 @@ m4_define([lt_dict_filter],
# @configure_input@ # @configure_input@
# serial 4179 ltversion.m4 # serial 4245 ltversion.m4
# This file is part of GNU Libtool # This file is part of GNU Libtool
m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_VERSION], [2.4.7])
m4_define([LT_PACKAGE_REVISION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.7])
AC_DEFUN([LTVERSION_VERSION], AC_DEFUN([LTVERSION_VERSION],
[macro_version='2.4.6' [macro_version='2.4.7'
macro_revision='2.4.6' macro_revision='2.4.7'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0) _LT_DECL(, macro_revision, 0)
]) ])
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
# #
# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free
# Foundation, Inc. # Software Foundation, Inc.
# Written by Scott James Remnant, 2004. # Written by Scott James Remnant, 2004.
# #
# This file is free software; the Free Software Foundation gives # This file is free software; the Free Software Foundation gives
@ -9044,8 +9076,8 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
# serial 11 (pkg-config-0.29.1) # serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
@ -9087,7 +9119,7 @@ dnl
dnl See the "Since" comment for each macro you use to see what version dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require. dnl of the macros you require.
m4_defun([PKG_PREREQ], m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.1]) [m4_define([PKG_MACROS_VERSION], [0.29.2])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ ])dnl PKG_PREREQ
@ -9132,7 +9164,7 @@ dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place dnl only at the first occurrence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS], AC_DEFUN([PKG_CHECK_EXISTS],
@ -9188,7 +9220,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no pkg_failed=no
AC_MSG_CHECKING([for $1]) AC_MSG_CHECKING([for $2])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2])
@ -9198,17 +9230,17 @@ and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.]) See the pkg-config man page for more details.])
if test $pkg_failed = yes; then if test $pkg_failed = yes; then
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED _PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
m4_default([$4], [AC_MSG_ERROR( m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met: [Package requirements ($2) were not met:
$$1_PKG_ERRORS $$1_PKG_ERRORS
@ -9219,8 +9251,8 @@ installed software in a non-standard prefix.
_PKG_TEXT])[]dnl _PKG_TEXT])[]dnl
]) ])
elif test $pkg_failed = untried; then elif test $pkg_failed = untried; then
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE( m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it [The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config. path to pkg-config.
@ -9230,10 +9262,10 @@ _PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
]) ])
else else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
$3 $3
fi[]dnl fi[]dnl
])dnl PKG_CHECK_MODULES ])dnl PKG_CHECK_MODULES
@ -9390,7 +9422,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
# AM_CONDITIONAL -*- Autoconf -*- # AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997-2020 Free Software Foundation, Inc. # Copyright (C) 1997-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -9421,7 +9453,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]]) Usually this means the macro was only invoked conditionally.]])
fi])]) fi])])
# Copyright (C) 2006-2020 Free Software Foundation, Inc. # Copyright (C) 2006-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,

View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for unbound 1.21.0. # Generated by GNU Autoconf 2.71 for unbound 1.21.1.
# #
# Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>. # Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
# #
@ -622,8 +622,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='unbound' PACKAGE_NAME='unbound'
PACKAGE_TARNAME='unbound' PACKAGE_TARNAME='unbound'
PACKAGE_VERSION='1.21.0' PACKAGE_VERSION='1.21.1'
PACKAGE_STRING='unbound 1.21.0' PACKAGE_STRING='unbound 1.21.1'
PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
PACKAGE_URL='' PACKAGE_URL=''
@ -771,6 +771,7 @@ RANLIB
ac_ct_AR ac_ct_AR
DLLTOOL DLLTOOL
OBJDUMP OBJDUMP
FILECMD
LN_S LN_S
NM NM
ac_ct_DUMPBIN ac_ct_DUMPBIN
@ -1508,7 +1509,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures unbound 1.21.0 to adapt to many kinds of systems. \`configure' configures unbound 1.21.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1574,7 +1575,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of unbound 1.21.0:";; short | recursive ) echo "Configuration of unbound 1.21.1:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1822,7 +1823,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
unbound configure 1.21.0 unbound configure 1.21.1
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@ -2479,7 +2480,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by unbound $as_me 1.21.0, which was It was created by unbound $as_me 1.21.1, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -3243,11 +3244,11 @@ UNBOUND_VERSION_MAJOR=1
UNBOUND_VERSION_MINOR=21 UNBOUND_VERSION_MINOR=21
UNBOUND_VERSION_MICRO=0 UNBOUND_VERSION_MICRO=1
LIBUNBOUND_CURRENT=9 LIBUNBOUND_CURRENT=9
LIBUNBOUND_REVISION=28 LIBUNBOUND_REVISION=29
LIBUNBOUND_AGE=1 LIBUNBOUND_AGE=1
# 1.0.0 had 0:12:0 # 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0 # 1.0.1 had 0:13:0
@ -3343,6 +3344,7 @@ LIBUNBOUND_AGE=1
# 1.19.3 had 9:26:1 # 1.19.3 had 9:26:1
# 1.20.0 had 9:27:1 # 1.20.0 had 9:27:1
# 1.21.0 had 9:28:1 # 1.21.0 had 9:28:1
# 1.21.1 had 9:29:1
# Current -- the number of the binary API that we're implementing # Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary # Revision -- which iteration of the implementation of the binary
@ -7780,8 +7782,8 @@ esac
macro_version='2.4.6' macro_version='2.4.7'
macro_revision='2.4.6' macro_revision='2.4.7'
@ -8265,13 +8267,13 @@ else
mingw*) lt_bad_file=conftest.nm/nofile ;; mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;; *) lt_bad_file=/dev/null ;;
esac esac
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*) *$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B" lt_cv_path_NM="$tmp_nm -B"
break 2 break 2
;; ;;
*) *)
case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
*/dev/null*) */dev/null*)
lt_cv_path_NM="$tmp_nm -p" lt_cv_path_NM="$tmp_nm -p"
break 2 break 2
@ -8409,7 +8411,7 @@ esac
fi fi
fi fi
case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
*COFF*) *COFF*)
DUMPBIN="$DUMPBIN -symbols -headers" DUMPBIN="$DUMPBIN -symbols -headers"
;; ;;
@ -8513,7 +8515,7 @@ else $as_nop
lt_cv_sys_max_cmd_len=8192; lt_cv_sys_max_cmd_len=8192;
;; ;;
bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd* | secbsd*) bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd* | secbsd*)
# This has been around since 386BSD, at least. Likely further. # This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@ -8556,7 +8558,7 @@ else $as_nop
sysv5* | sco5v6* | sysv4.2uw2*) sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then if test -n "$kargmax"; then
lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`
else else
lt_cv_sys_max_cmd_len=32768 lt_cv_sys_max_cmd_len=32768
fi fi
@ -8761,6 +8763,114 @@ esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.
set dummy ${ac_tool_prefix}file; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_FILECMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$FILECMD"; then
ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_FILECMD="${ac_tool_prefix}file"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
FILECMD=$ac_cv_prog_FILECMD
if test -n "$FILECMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
printf "%s\n" "$FILECMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_FILECMD"; then
ac_ct_FILECMD=$FILECMD
# Extract the first word of "file", so it can be a program name with args.
set dummy file; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_FILECMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_FILECMD"; then
ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_FILECMD="file"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD
if test -n "$ac_ct_FILECMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5
printf "%s\n" "$ac_ct_FILECMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_FILECMD" = x; then
FILECMD=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
FILECMD=$ac_ct_FILECMD
fi
else
FILECMD="$ac_cv_prog_FILECMD"
fi
if test -n "$ac_tool_prefix"; then if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2 set dummy ${ac_tool_prefix}objdump; ac_word=$2
@ -8904,7 +9014,7 @@ beos*)
bsdi[45]*) bsdi[45]*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_cmd='$FILECMD -L'
lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_file_magic_test_file=/shlib/libc.so
;; ;;
@ -8938,14 +9048,14 @@ darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all lt_cv_deplibs_check_method=pass_all
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in case $host_cpu in
i*86 ) i*86 )
# Not sure whether the presence of OpenBSD here was a mistake. # Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up. # Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly|SecBSD)/i[3-9]86 (compact )?demand paged shared library' lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly|SecBSD)/i[3-9]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;; ;;
esac esac
@ -8959,7 +9069,7 @@ haiku*)
;; ;;
hpux10.20* | hpux11*) hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
case $host_cpu in case $host_cpu in
ia64*) ia64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
@ -9006,7 +9116,7 @@ netbsd*)
newos6*) newos6*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=$FILECMD
lt_cv_file_magic_test_file=/usr/lib/libnls.so lt_cv_file_magic_test_file=/usr/lib/libnls.so
;; ;;
@ -9379,13 +9489,29 @@ esac
fi fi
: ${AR=ar} : ${AR=ar}
: ${AR_FLAGS=cru}
# Use ARFLAGS variable as AR's operation code to sync the variable naming with
# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
# higher priority because thats what people were doing historically (setting
# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
# variable obsoleted/removed.
test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
lt_ar_flags=$AR_FLAGS
# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
@ -9849,7 +9975,7 @@ esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import. # Gets list of data symbols to import.
lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables. # Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@ -9867,20 +9993,20 @@ fi
# Transform an extracted symbol line into a proper C declaration. # Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently, # Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach. # so use this general approach.
lt_cv_sys_global_symbol_to_cdecl="sed -n"\ lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
$lt_cdecl_hook\ $lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address # Transform an extracted symbol line into symbol name and symbol address
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
$lt_c_name_hook\ $lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and # Transform an extracted symbol line into symbol name with lib prefix and
# symbol address. # symbol address.
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
$lt_c_name_lib_hook\ $lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@ -9904,7 +10030,7 @@ for ac_symprfx in "" "_"; do
if test "$lt_cv_nm_interface" = "MS dumpbin"; then if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function, # Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable. # D for any global variable and I for any imported variable.
# Also find C++ and __fastcall symbols from MSVC++, # Also find C++ and __fastcall symbols from MSVC++ or ICC,
# which start with @ or ?. # which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK '"\ lt_cv_sys_global_symbol_pipe="$AWK '"\
" {last_section=section; section=\$ 3};"\ " {last_section=section; section=\$ 3};"\
@ -9922,9 +10048,9 @@ for ac_symprfx in "" "_"; do
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx" " ' prfx=^$ac_symprfx"
else else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi fi
lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
# Check to see that the pipe works correctly. # Check to see that the pipe works correctly.
pipe_works=no pipe_works=no
@ -10127,7 +10253,7 @@ case $with_sysroot in #(
fi fi
;; #( ;; #(
/*) /*)
lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
;; #( ;; #(
no|'') no|'')
;; #( ;; #(
@ -10252,7 +10378,7 @@ ia64-*-hpux*)
ac_status=$? ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*ELF-32*) *ELF-32*)
HPUX_IA64_MODE=32 HPUX_IA64_MODE=32
;; ;;
@ -10273,7 +10399,7 @@ ia64-*-hpux*)
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
LD="${LD-ld} -melf32bsmip" LD="${LD-ld} -melf32bsmip"
;; ;;
@ -10285,7 +10411,7 @@ ia64-*-hpux*)
;; ;;
esac esac
else else
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
LD="${LD-ld} -32" LD="${LD-ld} -32"
;; ;;
@ -10311,7 +10437,7 @@ mips64*-*linux*)
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
emul=elf emul=elf
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*32-bit*) *32-bit*)
emul="${emul}32" emul="${emul}32"
;; ;;
@ -10319,7 +10445,7 @@ mips64*-*linux*)
emul="${emul}64" emul="${emul}64"
;; ;;
esac esac
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*MSB*) *MSB*)
emul="${emul}btsmip" emul="${emul}btsmip"
;; ;;
@ -10327,7 +10453,7 @@ mips64*-*linux*)
emul="${emul}ltsmip" emul="${emul}ltsmip"
;; ;;
esac esac
case `/usr/bin/file conftest.$ac_objext` in case `$FILECMD conftest.$ac_objext` in
*N32*) *N32*)
emul="${emul}n32" emul="${emul}n32"
;; ;;
@ -10351,14 +10477,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
ac_status=$? ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*32-bit*) *32-bit*)
case $host in case $host in
x86_64-*kfreebsd*-gnu) x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd" LD="${LD-ld} -m elf_i386_fbsd"
;; ;;
x86_64-*linux*) x86_64-*linux*)
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*x86-64*) *x86-64*)
LD="${LD-ld} -m elf32_x86_64" LD="${LD-ld} -m elf32_x86_64"
;; ;;
@ -10466,7 +10592,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
ac_status=$? ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in case `$FILECMD conftest.o` in
*64-bit*) *64-bit*)
case $lt_cv_prog_gnu_ld in case $lt_cv_prog_gnu_ld in
yes*) yes*)
@ -11249,8 +11375,8 @@ int forced_loaded() { return 2;}
_LT_EOF _LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5 echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5 $AR $AR_FLAGS libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5 echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5 $RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF cat > conftest.c << _LT_EOF
@ -11277,17 +11403,12 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; }
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*) darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
darwin*) # darwin 5.x on darwin*)
# if running on 10.5 or later, the deployment target defaults case $MACOSX_DEPLOYMENT_TARGET,$host in
# to the OS version, if on x86, and 10.4, the deployment 10.[012],*|,*powerpc*-darwin[5-8]*)
# target defaults to 10.4. Don't you love it? _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in *)
10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[012][,.]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac esac
;; ;;
esac esac
@ -11648,8 +11769,8 @@ esac
ofile=libtool ofile=libtool
can_build_shared=yes can_build_shared=yes
# All known linkers require a '.a' archive for static linking (except MSVC, # All known linkers require a '.a' archive for static linking (except MSVC and
# which needs '.lib'). # ICC, which need '.lib').
libext=a libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld with_gnu_ld=$lt_cv_prog_gnu_ld
@ -12157,7 +12278,7 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-qstaticlink' lt_prog_compiler_static='-qstaticlink'
;; ;;
*) *)
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker # Sun Fortran 8.3 passes all unrecognized flags to the linker
lt_prog_compiler_pic='-KPIC' lt_prog_compiler_pic='-KPIC'
@ -12580,15 +12701,15 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
case $host_os in case $host_os in
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using # When not using gcc, we currently assume that we are using
# Microsoft Visual C++. # Microsoft Visual C++ or Intel C++ Compiler.
if test yes != "$GCC"; then if test yes != "$GCC"; then
with_gnu_ld=no with_gnu_ld=no
fi fi
;; ;;
interix*) interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
with_gnu_ld=yes with_gnu_ld=yes
;; ;;
openbsd* | bitrig* | secbsd*) openbsd* | bitrig* | secbsd*)
@ -12640,7 +12761,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
whole_archive_flag_spec= whole_archive_flag_spec=
fi fi
supports_anon_versioning=no supports_anon_versioning=no
case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;; *GNU\ gold*) supports_anon_versioning=yes ;;
*\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@ -12752,6 +12873,7 @@ _LT_EOF
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes enable_shared_with_static_runtimes=yes
file_list_spec='@'
;; ;;
interix[3-9]*) interix[3-9]*)
@ -12766,7 +12888,7 @@ _LT_EOF
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space. # time. Moving up from 0x10000000 also allows more sbrk(2) space.
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
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' 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'
;; ;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@ -12809,7 +12931,7 @@ _LT_EOF
compiler_needs_object=yes compiler_needs_object=yes
;; ;;
esac esac
case `$CC -V 2>&1 | sed 5q` in case `$CC -V 2>&1 | $SED 5q` in
*Sun\ C*) # Sun C 5.9 *Sun\ C*) # Sun C 5.9
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' 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'
compiler_needs_object=yes compiler_needs_object=yes
@ -12821,7 +12943,7 @@ _LT_EOF
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi fi
@ -12837,7 +12959,7 @@ _LT_EOF
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi fi
@ -12969,7 +13091,7 @@ _LT_EOF
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
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' 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'
else else
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' 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'
fi fi
aix_use_runtimelinking=no aix_use_runtimelinking=no
@ -13240,12 +13362,12 @@ fi
cygwin* | mingw* | pw32* | cegcc*) cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using # When not using gcc, we currently assume that we are using
# Microsoft Visual C++. # Microsoft Visual C++ or Intel C++ Compiler.
# hardcode_libdir_flag_spec is actually meaningless, as there is # hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs. # no search path for DLLs.
case $cc_basename in case $cc_basename in
cl*) cl* | icl*)
# Native MSVC # Native MSVC or ICC
hardcode_libdir_flag_spec=' ' hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported allow_undefined_flag=unsupported
always_export_symbols=yes always_export_symbols=yes
@ -13286,7 +13408,7 @@ fi
fi' fi'
;; ;;
*) *)
# Assume MSVC wrapper # Assume MSVC and ICC wrapper
hardcode_libdir_flag_spec=' ' hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported allow_undefined_flag=unsupported
# Tell ltmain to make .lib files, not .a files. # Tell ltmain to make .lib files, not .a files.
@ -13327,8 +13449,8 @@ fi
output_verbose_link_cmd=func_echo_all output_verbose_link_cmd=func_echo_all
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
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" 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"
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" 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"
else else
ld_shlibs=no ld_shlibs=no
@ -13362,7 +13484,7 @@ fi
;; ;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries. # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='-R$libdir' hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes hardcode_direct=yes
@ -13613,6 +13735,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
emximp -o $lib $output_objdir/$libname.def' emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes enable_shared_with_static_runtimes=yes
file_list_spec='@'
;; ;;
osf3*) osf3*)
@ -14305,7 +14428,7 @@ cygwin* | mingw* | pw32* | cegcc*)
case $host_os in case $host_os in
cygwin*) cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib' # Cygwin DLLs use 'cyg' prefix rather than 'lib'
soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
;; ;;
@ -14315,14 +14438,14 @@ cygwin* | mingw* | pw32* | cegcc*)
;; ;;
pw32*) pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib' # pw32 DLLs use 'pw' prefix rather than 'lib'
library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;; ;;
esac esac
dynamic_linker='Win32 ld.exe' dynamic_linker='Win32 ld.exe'
;; ;;
*,cl*) *,cl* | *,icl*)
# Native MSVC # Native MSVC or ICC
libname_spec='$name' libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib' library_names_spec='$libname.dll.lib'
@ -14341,7 +14464,7 @@ cygwin* | mingw* | pw32* | cegcc*)
done done
IFS=$lt_save_ifs IFS=$lt_save_ifs
# Convert to MSYS style. # Convert to MSYS style.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
;; ;;
cygwin*) cygwin*)
# Convert to unix form, then to dos form, then back to unix form # Convert to unix form, then to dos form, then back to unix form
@ -14378,7 +14501,7 @@ cygwin* | mingw* | pw32* | cegcc*)
;; ;;
*) *)
# Assume MSVC wrapper # Assume MSVC and ICC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe' dynamic_linker='Win32 ld.exe'
;; ;;
@ -14411,7 +14534,7 @@ dgux*)
shlibpath_var=LD_LIBRARY_PATH shlibpath_var=LD_LIBRARY_PATH
;; ;;
freebsd* | dragonfly*) freebsd* | dragonfly* | midnightbsd*)
# DragonFly does not have aout. When/if they implement a new # DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this. # versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then if test -x /usr/bin/objformat; then
@ -15567,30 +15690,41 @@ striplib=
old_striplib= old_striplib=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
printf %s "checking whether stripping libraries is possible... " >&6; } printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then if test -z "$STRIP"; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
test -z "$striplib" && striplib="$STRIP --strip-unneeded" printf "%s\n" "no" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else else
# FIXME - insert some real tests, host_os isn't really good enough if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
case $host_os in old_striplib="$STRIP --strip-debug"
darwin*) striplib="$STRIP --strip-unneeded"
if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
case $host_os in
darwin*)
# FIXME - insert some real tests, host_os isn't really good enough
striplib="$STRIP -x" striplib="$STRIP -x"
old_striplib="$STRIP -S" old_striplib="$STRIP -S"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } printf "%s\n" "yes" >&6; }
else ;;
freebsd*)
if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
old_striplib="$STRIP --strip-debug"
striplib="$STRIP --strip-unneeded"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
fi ;;
;; esac
*) fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
esac
fi fi
@ -17706,8 +17840,8 @@ then :
have_systemd=no have_systemd=no
pkg_failed=no pkg_failed=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd" >&5
printf %s "checking for SYSTEMD... " >&6; } printf %s "checking for libsystemd... " >&6; }
if test -n "$SYSTEMD_CFLAGS"; then if test -n "$SYSTEMD_CFLAGS"; then
pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS" pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
@ -17747,7 +17881,7 @@ fi
if test $pkg_failed = yes; then if test $pkg_failed = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -17756,14 +17890,14 @@ else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi fi
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1` SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
else else
SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1` SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$SYSTEMD_PKG_ERRORS" >&5 echo "$SYSTEMD_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (libsystemd) were not met: as_fn_error $? "Package requirements (libsystemd) were not met:
$SYSTEMD_PKG_ERRORS $SYSTEMD_PKG_ERRORS
@ -17774,9 +17908,9 @@ Alternatively, you may set the environment variables SYSTEMD_CFLAGS
and SYSTEMD_LIBS to avoid the need to call pkg-config. and SYSTEMD_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5 See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full is in your PATH or set the PKG_CONFIG environment variable to the full
@ -17789,11 +17923,11 @@ See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>. To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; } See \`config.log' for more details" "$LINENO" 5; }
else else
SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } printf "%s\n" "yes" >&6; }
have_systemd=yes have_systemd=yes
fi fi
if test "x$have_systemd" != "xyes" if test "x$have_systemd" != "xyes"
then : then :
@ -17801,8 +17935,8 @@ then :
have_systemd_daemon=no have_systemd_daemon=no
pkg_failed=no pkg_failed=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd-daemon" >&5
printf %s "checking for SYSTEMD_DAEMON... " >&6; } printf %s "checking for libsystemd-daemon... " >&6; }
if test -n "$SYSTEMD_DAEMON_CFLAGS"; then if test -n "$SYSTEMD_DAEMON_CFLAGS"; then
pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS" pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS"
@ -17842,7 +17976,7 @@ fi
if test $pkg_failed = yes; then if test $pkg_failed = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -17851,14 +17985,14 @@ else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi fi
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1` SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
else else
SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1` SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5 echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (libsystemd-daemon) were not met: as_fn_error $? "Package requirements (libsystemd-daemon) were not met:
$SYSTEMD_DAEMON_PKG_ERRORS $SYSTEMD_DAEMON_PKG_ERRORS
@ -17869,9 +18003,9 @@ Alternatively, you may set the environment variables SYSTEMD_DAEMON_CFLAGS
and SYSTEMD_DAEMON_LIBS to avoid the need to call pkg-config. and SYSTEMD_DAEMON_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5 See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full is in your PATH or set the PKG_CONFIG environment variable to the full
@ -17884,11 +18018,11 @@ See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>. To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; } See \`config.log' for more details" "$LINENO" 5; }
else else
SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } printf "%s\n" "yes" >&6; }
have_systemd_daemon=yes have_systemd_daemon=yes
fi fi
if test "x$have_systemd_daemon" = "xyes" if test "x$have_systemd_daemon" = "xyes"
then : then :
@ -23885,8 +24019,8 @@ else $as_nop
if test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG"; then
pkg_failed=no pkg_failed=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PROTOBUFC" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libprotobuf-c" >&5
printf %s "checking for PROTOBUFC... " >&6; } printf %s "checking for libprotobuf-c... " >&6; }
if test -n "$PROTOBUFC_CFLAGS"; then if test -n "$PROTOBUFC_CFLAGS"; then
pkg_cv_PROTOBUFC_CFLAGS="$PROTOBUFC_CFLAGS" pkg_cv_PROTOBUFC_CFLAGS="$PROTOBUFC_CFLAGS"
@ -23926,7 +24060,7 @@ fi
if test $pkg_failed = yes; then if test $pkg_failed = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -23935,12 +24069,12 @@ else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi fi
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libprotobuf-c" 2>&1` PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libprotobuf-c" 2>&1`
else else
PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libprotobuf-c" 2>&1` PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libprotobuf-c" 2>&1`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$PROTOBUFC_PKG_ERRORS" >&5 echo "$PROTOBUFC_PKG_ERRORS" >&5
# pkg-config failed; try falling back to known values # pkg-config failed; try falling back to known values
@ -23958,7 +24092,7 @@ fi
elif test $pkg_failed = untried; then elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } printf "%s\n" "no" >&6; }
# pkg-config failed; try falling back to known values # pkg-config failed; try falling back to known values
@ -23976,8 +24110,8 @@ printf "%s\n" "no" >&6; }
else else
PROTOBUFC_CFLAGS=$pkg_cv_PROTOBUFC_CFLAGS PROTOBUFC_CFLAGS=$pkg_cv_PROTOBUFC_CFLAGS
PROTOBUFC_LIBS=$pkg_cv_PROTOBUFC_LIBS PROTOBUFC_LIBS=$pkg_cv_PROTOBUFC_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } printf "%s\n" "yes" >&6; }
@ -24644,7 +24778,7 @@ printf "%s\n" "#define MAXSYSLOGMSGLEN 10240" >>confdefs.h
version=1.21.0 version=1.21.1
date=`date +'%b %e, %Y'` date=`date +'%b %e, %Y'`
@ -25156,7 +25290,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by unbound $as_me 1.21.0, which was This file was extended by unbound $as_me 1.21.1, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -25224,7 +25358,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
unbound config.status 1.21.0 unbound config.status 1.21.1
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"
@ -25384,6 +25518,7 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
@ -25392,6 +25527,7 @@ want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
@ -25512,6 +25648,7 @@ LN_S \
lt_SP2NL \ lt_SP2NL \
lt_NL2SP \ lt_NL2SP \
reload_flag \ reload_flag \
FILECMD \
OBJDUMP \ OBJDUMP \
deplibs_check_method \ deplibs_check_method \
file_magic_cmd \ file_magic_cmd \
@ -25520,7 +25657,6 @@ want_nocaseglob \
DLLTOOL \ DLLTOOL \
sharedlib_from_linklib_cmd \ sharedlib_from_linklib_cmd \
AR \ AR \
AR_FLAGS \
archiver_list_spec \ archiver_list_spec \
STRIP \ STRIP \
RANLIB \ RANLIB \
@ -26333,6 +26469,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
# convert \$build files to toolchain format. # convert \$build files to toolchain format.
to_tool_file_cmd=$lt_cv_to_tool_file_cmd to_tool_file_cmd=$lt_cv_to_tool_file_cmd
# A file(cmd) program that detects file types.
FILECMD=$lt_FILECMD
# An object symbol dumper. # An object symbol dumper.
OBJDUMP=$lt_OBJDUMP OBJDUMP=$lt_OBJDUMP
@ -26357,8 +26496,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
# The archiver. # The archiver.
AR=$lt_AR AR=$lt_AR
# Flags to create an archive (by configure).
lt_ar_flags=$lt_ar_flags
# Flags to create an archive. # Flags to create an archive.
AR_FLAGS=$lt_AR_FLAGS AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
# How to feed a file listing to the archiver. # How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec archiver_list_spec=$lt_archiver_list_spec
@ -26734,7 +26876,7 @@ ltmain=$ac_aux_dir/ltmain.sh
# if finds mixed CR/LF and LF-only lines. Since sed operates in # if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem # text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too? # is reportedly fixed, but why not run on old versions too?
sed '$q' "$ltmain" >> "$cfgfile" \ $SED '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1) || (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" || mv -f "$cfgfile" "$ofile" ||

View file

@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4)
# must be numbers. ac_defun because of later processing # must be numbers. ac_defun because of later processing
m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MAJOR],[1])
m4_define([VERSION_MINOR],[21]) m4_define([VERSION_MINOR],[21])
m4_define([VERSION_MICRO],[0]) m4_define([VERSION_MICRO],[1])
AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound]) AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound])
AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
LIBUNBOUND_CURRENT=9 LIBUNBOUND_CURRENT=9
LIBUNBOUND_REVISION=28 LIBUNBOUND_REVISION=29
LIBUNBOUND_AGE=1 LIBUNBOUND_AGE=1
# 1.0.0 had 0:12:0 # 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0 # 1.0.1 had 0:13:0
@ -114,6 +114,7 @@ LIBUNBOUND_AGE=1
# 1.19.3 had 9:26:1 # 1.19.3 had 9:26:1
# 1.20.0 had 9:27:1 # 1.20.0 had 9:27:1
# 1.21.0 had 9:28:1 # 1.21.0 had 9:28:1
# 1.21.1 had 9:29:1
# Current -- the number of the binary API that we're implementing # Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary # Revision -- which iteration of the implementation of the binary

View file

@ -1,4 +1,4 @@
README for Unbound 1.21.0 README for Unbound 1.21.1
Copyright 2007 NLnet Labs Copyright 2007 NLnet Labs
http://unbound.net http://unbound.net

View file

@ -1,7 +1,7 @@
# #
# Example configuration file. # Example configuration file.
# #
# See unbound.conf(5) man page, version 1.21.0. # See unbound.conf(5) man page, version 1.21.1.
# #
# this is a comment. # this is a comment.

View file

@ -1,4 +1,4 @@
.TH "libunbound" "3" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "libunbound" "3" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" libunbound.3 -- unbound library functions manual .\" libunbound.3 -- unbound library functions manual
.\" .\"
@ -44,7 +44,7 @@
.B ub_ctx_zone_remove, .B ub_ctx_zone_remove,
.B ub_ctx_data_add, .B ub_ctx_data_add,
.B ub_ctx_data_remove .B ub_ctx_data_remove
\- Unbound DNS validating resolver 1.21.0 functions. \- Unbound DNS validating resolver 1.21.1 functions.
.SH "SYNOPSIS" .SH "SYNOPSIS"
.B #include <unbound.h> .B #include <unbound.h>
.LP .LP

View file

@ -1,4 +1,4 @@
.TH "unbound-anchor" "8" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "unbound-anchor" "8" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual .\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\" .\"

View file

@ -1,4 +1,4 @@
.TH "unbound-checkconf" "8" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "unbound-checkconf" "8" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" unbound-checkconf.8 -- unbound configuration checker manual .\" unbound-checkconf.8 -- unbound configuration checker manual
.\" .\"

View file

@ -1,4 +1,4 @@
.TH "unbound-control" "8" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "unbound-control" "8" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" unbound-control.8 -- unbound remote control manual .\" unbound-control.8 -- unbound remote control manual
.\" .\"

View file

@ -1,4 +1,4 @@
.TH "unbound\-host" "1" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "unbound\-host" "1" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" unbound-host.1 -- unbound DNS lookup utility .\" unbound-host.1 -- unbound DNS lookup utility
.\" .\"

View file

@ -1,4 +1,4 @@
.TH "unbound" "8" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "unbound" "8" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" unbound.8 -- unbound manual .\" unbound.8 -- unbound manual
.\" .\"
@ -9,7 +9,7 @@
.\" .\"
.SH "NAME" .SH "NAME"
.B unbound .B unbound
\- Unbound DNS validating resolver 1.21.0. \- Unbound DNS validating resolver 1.21.1.
.SH "SYNOPSIS" .SH "SYNOPSIS"
.B unbound .B unbound
.RB [ \-h ] .RB [ \-h ]

View file

@ -1,4 +1,4 @@
.TH "unbound.conf" "5" "Aug 15, 2024" "NLnet Labs" "unbound 1.21.0" .TH "unbound.conf" "5" "Oct 3, 2024" "NLnet Labs" "unbound 1.21.1"
.\" .\"
.\" unbound.conf.5 -- unbound.conf manual .\" unbound.conf.5 -- unbound.conf manual
.\" .\"

View file

@ -1,7 +1,7 @@
#!/usr/bin/sh #!/usr/bin/sh
# install - install a program, script, or datafile # install - install a program, script, or datafile
scriptversion=2013-12-25.23; # UTC scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was # This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the # later released in X11R6 (xc/config/util/install.sh) with the
@ -69,6 +69,11 @@ posix_mkdir=
# Desired mode of installed file. # Desired mode of installed file.
mode=0755 mode=0755
# Create dirs (including intermediate dirs) using mode 755.
# This is like GNU 'install' as of coreutils 8.32 (2020).
mkdir_umask=22
backupsuffix=
chgrpcmd= chgrpcmd=
chmodcmd=$chmodprog chmodcmd=$chmodprog
chowncmd= chowncmd=
@ -99,18 +104,28 @@ Options:
--version display version info and exit. --version display version info and exit.
-c (ignored) -c (ignored)
-C install only if different (preserve the last data modification time) -C install only if different (preserve data modification time)
-d create directories instead of installing files. -d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP. -g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE. -m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER. -o USER $chownprog installed files to USER.
-p pass -p to $cpprog.
-s $stripprog installed files. -s $stripprog installed files.
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY. -t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory. -T report an error if DSTFILE is a directory.
Environment variables override the default commands: Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG RMPROG STRIPPROG
By default, rm is invoked with -f; when overridden with RMPROG,
it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Email bug reports to bug-automake@gnu.org.
Automake home page: https://www.gnu.org/software/automake/
" "
while test $# -ne 0; do while test $# -ne 0; do
@ -137,8 +152,13 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2" -o) chowncmd="$chownprog $2"
shift;; shift;;
-p) cpprog="$cpprog -p";;
-s) stripcmd=$stripprog;; -s) stripcmd=$stripprog;;
-S) backupsuffix="$2"
shift;;
-t) -t)
is_target_a_directory=always is_target_a_directory=always
dst_arg=$2 dst_arg=$2
@ -255,6 +275,10 @@ do
dstdir=$dst dstdir=$dst
test -d "$dstdir" test -d "$dstdir"
dstdir_status=$? dstdir_status=$?
# Don't chown directories that already exist.
if test $dstdir_status = 0; then
chowncmd=""
fi
else else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@ -271,15 +295,18 @@ do
fi fi
dst=$dst_arg dst=$dst_arg
# If destination is a directory, append the input filename; won't work # If destination is a directory, append the input filename.
# if double slashes aren't ignored.
if test -d "$dst"; then if test -d "$dst"; then
if test "$is_target_a_directory" = never; then if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2 echo "$0: $dst_arg: Is a directory" >&2
exit 1 exit 1
fi fi
dstdir=$dst dstdir=$dst
dst=$dstdir/`basename "$src"` dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0 dstdir_status=0
else else
dstdir=`dirname "$dst"` dstdir=`dirname "$dst"`
@ -288,27 +315,16 @@ do
fi fi
fi fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false obsolete_mkdir_used=false
if test $dstdir_status != 0; then if test $dstdir_status != 0; then
case $posix_mkdir in case $posix_mkdir in
'') '')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode. # With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask. # Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then if test -n "$dir_arg"; then
@ -318,43 +334,49 @@ do
fi fi
posix_mkdir=false posix_mkdir=false
case $umask in # The $RANDOM variable is not portable (e.g., dash). Use it
*[123567][0-7][0-7]) # here however when possible just to lower collision chance.
# POSIX mkdir -p sets u+wx bits regardless of umask, which tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask && trap '
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 ret=$?
then rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
if test -z "$dir_arg" || { exit $ret
# Check for POSIX incompatibilities with -m. ' 0
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't. # Because "mkdir -p" follows existing symlinks and we likely work
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. # directly in world-writeable /tmp, make sure that the '$tmpdir'
ls_ld_tmpdir=`ls -ld "$tmpdir"` # directory is successfully created first before we actually test
case $ls_ld_tmpdir in # 'mkdir -p'.
d????-?r-*) different_mode=700;; if (umask $mkdir_umask &&
d????-?--*) different_mode=755;; $mkdirprog $mkdir_mode "$tmpdir" &&
*) false;; exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
esac && then
$mkdirprog -m$different_mode -p -- "$tmpdir" && { if test -z "$dir_arg" || {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"` # Check for POSIX incompatibilities with -m.
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
} # other-writable bit of parent directory when it shouldn't.
} # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
then posix_mkdir=: test_tmpdir="$tmpdir/a"
fi ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
rmdir "$tmpdir/d" "$tmpdir" case $ls_ld_tmpdir in
else d????-?r-*) different_mode=700;;
# Remove any dirs left behind by ancient mkdir implementations. d????-?--*) different_mode=755;;
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null *) false;;
fi esac &&
trap '' 0;; $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
esac;; ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac esac
if if
@ -365,7 +387,7 @@ do
then : then :
else else
# The umask is ridiculous, or mkdir does not conform to POSIX, # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the # or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go. # directory the slow way, step by step, checking for races as we go.
@ -394,7 +416,7 @@ do
prefixes= prefixes=
else else
if $posix_mkdir; then if $posix_mkdir; then
(umask=$mkdir_umask && (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently. # Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1 test -d "$prefix" || exit 1
@ -427,14 +449,25 @@ do
else else
# Make a couple of temp file names in the proper directory. # Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_ dsttmp=${dstdirslash}_inst.$$_
rmtmp=$dstdir/_rm.$$_ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit. # Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name. # Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && (umask $cp_umask &&
{ test -z "$stripcmd" || {
# Create $dsttmp read-write so that cp doesn't create it read-only,
# which would cause strip to fail.
if test -z "$doit"; then
: >"$dsttmp" # No need to fork-exec 'touch'.
else
$doit touch "$dsttmp"
fi
}
} &&
$doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits. # and set any options; do chmod last to preserve setuid bits.
# #
@ -460,6 +493,13 @@ do
then then
rm -f "$dsttmp" rm -f "$dsttmp"
else else
# If $backupsuffix is set, and the file being installed
# already exists, attempt a backup. Don't worry if it fails,
# e.g., if mv doesn't support -f.
if test -n "$backupsuffix" && test -f "$dst"; then
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
fi
# Rename the file to the real destination. # Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@ -474,9 +514,9 @@ do
# file should still install successfully. # file should still install successfully.
{ {
test ! -f "$dst" || test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null || $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} || } ||
{ echo "$0: cannot unlink or rename $dst" >&2 { echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1 (exit 1); exit 1
@ -493,9 +533,9 @@ do
done done
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC" # time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC" # time-stamp-end: "; # UTC"
# End: # End:

File diff suppressed because it is too large Load diff

View file

@ -62,6 +62,10 @@
#define RETVAL_TRUNC -4 #define RETVAL_TRUNC -4
/** return code that means all is peachy keen. Equal to DNS rcode NOERROR */ /** return code that means all is peachy keen. Equal to DNS rcode NOERROR */
#define RETVAL_OK 0 #define RETVAL_OK 0
/** Max compressions we are willing to perform; more than that will result
* in semi-compressed messages, or truncated even on TCP for huge messages, to
* avoid locking the CPU for long */
#define MAX_COMPRESSION_PER_MESSAGE 120
/** /**
* Data structure to help domain name compression in outgoing messages. * Data structure to help domain name compression in outgoing messages.
@ -286,13 +290,15 @@ write_compressed_dname(sldns_buffer* pkt, uint8_t* dname, int labs,
static int static int
compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt, compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
struct regional* region, struct compress_tree_node** tree, struct regional* region, struct compress_tree_node** tree,
size_t owner_pos, uint16_t* owner_ptr, int owner_labs) size_t owner_pos, uint16_t* owner_ptr, int owner_labs,
size_t* compress_count)
{ {
struct compress_tree_node* p; struct compress_tree_node* p;
struct compress_tree_node** insertpt = NULL; struct compress_tree_node** insertpt = NULL;
if(!*owner_ptr) { if(!*owner_ptr) {
/* compress first time dname */ /* compress first time dname */
if((p = compress_tree_lookup(tree, key->rk.dname, if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
(p = compress_tree_lookup(tree, key->rk.dname,
owner_labs, &insertpt))) { owner_labs, &insertpt))) {
if(p->labs == owner_labs) if(p->labs == owner_labs)
/* avoid ptr chains, since some software is /* avoid ptr chains, since some software is
@ -301,6 +307,7 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
if(!write_compressed_dname(pkt, key->rk.dname, if(!write_compressed_dname(pkt, key->rk.dname,
owner_labs, p)) owner_labs, p))
return RETVAL_TRUNC; return RETVAL_TRUNC;
(*compress_count)++;
/* check if typeclass+4 ttl + rdatalen is available */ /* check if typeclass+4 ttl + rdatalen is available */
if(sldns_buffer_remaining(pkt) < 4+4+2) if(sldns_buffer_remaining(pkt) < 4+4+2)
return RETVAL_TRUNC; return RETVAL_TRUNC;
@ -313,7 +320,8 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
if(owner_pos <= PTR_MAX_OFFSET) if(owner_pos <= PTR_MAX_OFFSET)
*owner_ptr = htons(PTR_CREATE(owner_pos)); *owner_ptr = htons(PTR_CREATE(owner_pos));
} }
if(!compress_tree_store(key->rk.dname, owner_labs, if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
!compress_tree_store(key->rk.dname, owner_labs,
owner_pos, region, p, insertpt)) owner_pos, region, p, insertpt))
return RETVAL_OUTMEM; return RETVAL_OUTMEM;
} else { } else {
@ -334,19 +342,23 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
/** compress any domain name to the packet, return RETVAL_* */ /** compress any domain name to the packet, return RETVAL_* */
static int static int
compress_any_dname(uint8_t* dname, sldns_buffer* pkt, int labs, compress_any_dname(uint8_t* dname, sldns_buffer* pkt, int labs,
struct regional* region, struct compress_tree_node** tree) struct regional* region, struct compress_tree_node** tree,
size_t* compress_count)
{ {
struct compress_tree_node* p; struct compress_tree_node* p;
struct compress_tree_node** insertpt = NULL; struct compress_tree_node** insertpt = NULL;
size_t pos = sldns_buffer_position(pkt); size_t pos = sldns_buffer_position(pkt);
if((p = compress_tree_lookup(tree, dname, labs, &insertpt))) { if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
(p = compress_tree_lookup(tree, dname, labs, &insertpt))) {
if(!write_compressed_dname(pkt, dname, labs, p)) if(!write_compressed_dname(pkt, dname, labs, p))
return RETVAL_TRUNC; return RETVAL_TRUNC;
(*compress_count)++;
} else { } else {
if(!dname_buffer_write(pkt, dname)) if(!dname_buffer_write(pkt, dname))
return RETVAL_TRUNC; return RETVAL_TRUNC;
} }
if(!compress_tree_store(dname, labs, pos, region, p, insertpt)) if(*compress_count < MAX_COMPRESSION_PER_MESSAGE &&
!compress_tree_store(dname, labs, pos, region, p, insertpt))
return RETVAL_OUTMEM; return RETVAL_OUTMEM;
return RETVAL_OK; return RETVAL_OK;
} }
@ -366,7 +378,7 @@ type_rdata_compressable(struct ub_packed_rrset_key* key)
static int static int
compress_rdata(sldns_buffer* pkt, uint8_t* rdata, size_t todolen, compress_rdata(sldns_buffer* pkt, uint8_t* rdata, size_t todolen,
struct regional* region, struct compress_tree_node** tree, struct regional* region, struct compress_tree_node** tree,
const sldns_rr_descriptor* desc) const sldns_rr_descriptor* desc, size_t* compress_count)
{ {
int labs, r, rdf = 0; int labs, r, rdf = 0;
size_t dname_len, len, pos = sldns_buffer_position(pkt); size_t dname_len, len, pos = sldns_buffer_position(pkt);
@ -381,7 +393,7 @@ compress_rdata(sldns_buffer* pkt, uint8_t* rdata, size_t todolen,
case LDNS_RDF_TYPE_DNAME: case LDNS_RDF_TYPE_DNAME:
labs = dname_count_size_labels(rdata, &dname_len); labs = dname_count_size_labels(rdata, &dname_len);
if((r=compress_any_dname(rdata, pkt, labs, region, if((r=compress_any_dname(rdata, pkt, labs, region,
tree)) != RETVAL_OK) tree, compress_count)) != RETVAL_OK)
return r; return r;
rdata += dname_len; rdata += dname_len;
todolen -= dname_len; todolen -= dname_len;
@ -449,7 +461,8 @@ static int
packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt, packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
uint16_t* num_rrs, time_t timenow, struct regional* region, uint16_t* num_rrs, time_t timenow, struct regional* region,
int do_data, int do_sig, struct compress_tree_node** tree, int do_data, int do_sig, struct compress_tree_node** tree,
sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset) sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset,
size_t* compress_count)
{ {
size_t i, j, owner_pos; size_t i, j, owner_pos;
int r, owner_labs; int r, owner_labs;
@ -478,8 +491,8 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
/* rrset roundrobin */ /* rrset roundrobin */
j = (i + rr_offset) % data->count; j = (i + rr_offset) % data->count;
if((r=compress_owner(key, pkt, region, tree, if((r=compress_owner(key, pkt, region, tree,
owner_pos, &owner_ptr, owner_labs)) owner_pos, &owner_ptr, owner_labs,
!= RETVAL_OK) compress_count)) != RETVAL_OK)
return r; return r;
sldns_buffer_write(pkt, &key->rk.type, 2); sldns_buffer_write(pkt, &key->rk.type, 2);
sldns_buffer_write(pkt, &key->rk.rrset_class, 2); sldns_buffer_write(pkt, &key->rk.rrset_class, 2);
@ -489,8 +502,8 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
else sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust); else sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust);
if(c) { if(c) {
if((r=compress_rdata(pkt, data->rr_data[j], if((r=compress_rdata(pkt, data->rr_data[j],
data->rr_len[j], region, tree, c)) data->rr_len[j], region, tree, c,
!= RETVAL_OK) compress_count)) != RETVAL_OK)
return r; return r;
} else { } else {
if(sldns_buffer_remaining(pkt) < data->rr_len[j]) if(sldns_buffer_remaining(pkt) < data->rr_len[j])
@ -511,8 +524,8 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
sldns_buffer_write(pkt, &owner_ptr, 2); sldns_buffer_write(pkt, &owner_ptr, 2);
} else { } else {
if((r=compress_any_dname(key->rk.dname, if((r=compress_any_dname(key->rk.dname,
pkt, owner_labs, region, tree)) pkt, owner_labs, region, tree,
!= RETVAL_OK) compress_count)) != RETVAL_OK)
return r; return r;
if(sldns_buffer_remaining(pkt) < if(sldns_buffer_remaining(pkt) <
4+4+data->rr_len[i]) 4+4+data->rr_len[i])
@ -544,7 +557,8 @@ static int
insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs, insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
sldns_buffer* pkt, size_t rrsets_before, time_t timenow, sldns_buffer* pkt, size_t rrsets_before, time_t timenow,
struct regional* region, struct compress_tree_node** tree, struct regional* region, struct compress_tree_node** tree,
sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset) sldns_pkt_section s, uint16_t qtype, int dnssec, size_t rr_offset,
size_t* compress_count)
{ {
int r; int r;
size_t i, setstart; size_t i, setstart;
@ -560,7 +574,7 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
setstart = sldns_buffer_position(pkt); setstart = sldns_buffer_position(pkt);
if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i], if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i],
pkt, num_rrs, timenow, region, 1, 1, tree, pkt, num_rrs, timenow, region, 1, 1, tree,
s, qtype, dnssec, rr_offset)) s, qtype, dnssec, rr_offset, compress_count))
!= RETVAL_OK) { != RETVAL_OK) {
/* Bad, but if due to size must set TC bit */ /* Bad, but if due to size must set TC bit */
/* trim off the rrset neatly. */ /* trim off the rrset neatly. */
@ -573,7 +587,7 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
setstart = sldns_buffer_position(pkt); setstart = sldns_buffer_position(pkt);
if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i], if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i],
pkt, num_rrs, timenow, region, 1, 0, tree, pkt, num_rrs, timenow, region, 1, 0, tree,
s, qtype, dnssec, rr_offset)) s, qtype, dnssec, rr_offset, compress_count))
!= RETVAL_OK) { != RETVAL_OK) {
sldns_buffer_set_position(pkt, setstart); sldns_buffer_set_position(pkt, setstart);
return r; return r;
@ -584,7 +598,7 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
setstart = sldns_buffer_position(pkt); setstart = sldns_buffer_position(pkt);
if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i], if((r=packed_rrset_encode(rep->rrsets[rrsets_before+i],
pkt, num_rrs, timenow, region, 0, 1, tree, pkt, num_rrs, timenow, region, 0, 1, tree,
s, qtype, dnssec, rr_offset)) s, qtype, dnssec, rr_offset, compress_count))
!= RETVAL_OK) { != RETVAL_OK) {
sldns_buffer_set_position(pkt, setstart); sldns_buffer_set_position(pkt, setstart);
return r; return r;
@ -677,6 +691,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
struct compress_tree_node* tree = 0; struct compress_tree_node* tree = 0;
int r; int r;
size_t rr_offset; size_t rr_offset;
size_t compress_count=0;
sldns_buffer_clear(buffer); sldns_buffer_clear(buffer);
if(udpsize < sldns_buffer_limit(buffer)) if(udpsize < sldns_buffer_limit(buffer))
@ -723,7 +738,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
arep.rrsets = &qinfo->local_alias->rrset; arep.rrsets = &qinfo->local_alias->rrset;
if((r=insert_section(&arep, 1, &ancount, buffer, 0, if((r=insert_section(&arep, 1, &ancount, buffer, 0,
timezero, region, &tree, LDNS_SECTION_ANSWER, timezero, region, &tree, LDNS_SECTION_ANSWER,
qinfo->qtype, dnssec, rr_offset)) != RETVAL_OK) { qinfo->qtype, dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
if(r == RETVAL_TRUNC) { if(r == RETVAL_TRUNC) {
/* create truncated message */ /* create truncated message */
sldns_buffer_write_u16_at(buffer, 6, ancount); sldns_buffer_write_u16_at(buffer, 6, ancount);
@ -738,7 +753,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
/* insert answer section */ /* insert answer section */
if((r=insert_section(rep, rep->an_numrrsets, &ancount, buffer, if((r=insert_section(rep, rep->an_numrrsets, &ancount, buffer,
0, timenow, region, &tree, LDNS_SECTION_ANSWER, qinfo->qtype, 0, timenow, region, &tree, LDNS_SECTION_ANSWER, qinfo->qtype,
dnssec, rr_offset)) != RETVAL_OK) { dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
if(r == RETVAL_TRUNC) { if(r == RETVAL_TRUNC) {
/* create truncated message */ /* create truncated message */
sldns_buffer_write_u16_at(buffer, 6, ancount); sldns_buffer_write_u16_at(buffer, 6, ancount);
@ -756,7 +771,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
if((r=insert_section(rep, rep->ns_numrrsets, &nscount, buffer, if((r=insert_section(rep, rep->ns_numrrsets, &nscount, buffer,
rep->an_numrrsets, timenow, region, &tree, rep->an_numrrsets, timenow, region, &tree,
LDNS_SECTION_AUTHORITY, qinfo->qtype, LDNS_SECTION_AUTHORITY, qinfo->qtype,
dnssec, rr_offset)) != RETVAL_OK) { dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
if(r == RETVAL_TRUNC) { if(r == RETVAL_TRUNC) {
/* create truncated message */ /* create truncated message */
sldns_buffer_write_u16_at(buffer, 8, nscount); sldns_buffer_write_u16_at(buffer, 8, nscount);
@ -773,7 +788,7 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
if((r=insert_section(rep, rep->ar_numrrsets, &arcount, buffer, if((r=insert_section(rep, rep->ar_numrrsets, &arcount, buffer,
rep->an_numrrsets + rep->ns_numrrsets, timenow, region, rep->an_numrrsets + rep->ns_numrrsets, timenow, region,
&tree, LDNS_SECTION_ADDITIONAL, qinfo->qtype, &tree, LDNS_SECTION_ADDITIONAL, qinfo->qtype,
dnssec, rr_offset)) != RETVAL_OK) { dnssec, rr_offset, &compress_count)) != RETVAL_OK) {
if(r == RETVAL_TRUNC) { if(r == RETVAL_TRUNC) {
/* no need to set TC bit, this is the additional */ /* no need to set TC bit, this is the additional */
sldns_buffer_write_u16_at(buffer, 10, arcount); sldns_buffer_write_u16_at(buffer, 10, arcount);

View file

@ -1,4 +1,4 @@
/* $OpenBSD: priv.c,v 1.25 2024/09/26 01:45:13 jsg Exp $ */ /* $OpenBSD: priv.c,v 1.26 2024/10/07 04:29:01 kn Exp $ */
/* /*
* Copyright (c) 2016 Reyk Floeter <reyk@openbsd.org> * Copyright (c) 2016 Reyk Floeter <reyk@openbsd.org>
@ -83,7 +83,6 @@ priv_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
struct ifgroupreq ifgr; struct ifgroupreq ifgr;
struct ifaliasreq ifra; struct ifaliasreq ifra;
struct in6_aliasreq in6_ifra; struct in6_aliasreq in6_ifra;
struct if_afreq ifar;
struct vmop_addr_req vareq; struct vmop_addr_req vareq;
struct vmop_addr_result varesult; struct vmop_addr_result varesult;
char type[IF_NAMESIZE]; char type[IF_NAMESIZE];
@ -203,20 +202,12 @@ priv_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
log_warn("SIOCAIFADDR"); log_warn("SIOCAIFADDR");
break; break;
case IMSG_VMDOP_PRIV_IFADDR6: case IMSG_VMDOP_PRIV_IFADDR6:
memset(&ifar, 0, sizeof(ifar));
memset(&in6_ifra, 0, sizeof(in6_ifra)); memset(&in6_ifra, 0, sizeof(in6_ifra));
if (vfr.vfr_addr.ss_family != AF_INET6 || if (vfr.vfr_addr.ss_family != AF_INET6 ||
vfr.vfr_addr.ss_family != vfr.vfr_mask.ss_family) vfr.vfr_addr.ss_family != vfr.vfr_mask.ss_family)
fatalx("%s: invalid address family", __func__); fatalx("%s: invalid address family", __func__);
/* First enable IPv6 on this interface */
strlcpy(ifar.ifar_name, vfr.vfr_name,
sizeof(ifar.ifar_name));
ifar.ifar_af = AF_INET6;
if (ioctl(env->vmd_fd, SIOCIFAFATTACH, (caddr_t)&ifar) == -1)
log_warn("SIOCIFAFATTACH");
/* Set the interface address */ /* Set the interface address */
strlcpy(in6_ifra.ifra_name, vfr.vfr_name, strlcpy(in6_ifra.ifra_name, vfr.vfr_name,
sizeof(in6_ifra.ifra_name)); sizeof(in6_ifra.ifra_name));