4af14b7b01
Although it deviates from the actual prototype of DSO_dsobyaddr(), this is now ISO C compliant and gcc -Wpedantic accepts the code. Added DATA segment checking to catch ptrgl virtual addresses. Avoid memleaks with every AIX/dladdr() call. Removed debug-fprintf()s. Added test case for DSO_dsobyaddr(), which will eventually call dladdr(). Removed unecessary AIX ifdefs again. The implementation can only lookup function symbols, no data symbols. Added PIC-flag to aix*-cc build targets. As AIX is missing a dladdr() implementation it is currently uncertain our exit()-handlers can still be called when the application exits. After dlclose() the whole library might have been unloaded already. Signed-off-by: Matthias Kraft <makr@gmx.eu> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5668)
40 lines
1.3 KiB
Raku
40 lines
1.3 KiB
Raku
#! /usr/bin/env perl
|
|
# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the OpenSSL license (the "License"). You may not use
|
|
# this file except in compliance with the License. You can obtain a copy
|
|
# in the file LICENSE in the source distribution or at
|
|
# https://www.openssl.org/source/license.html
|
|
|
|
|
|
use OpenSSL::Test qw/:DEFAULT bldtop_dir/;
|
|
use OpenSSL::Test::Utils;
|
|
|
|
#Load configdata.pm
|
|
|
|
BEGIN {
|
|
setup("test_shlibload");
|
|
}
|
|
use lib bldtop_dir('.');
|
|
use configdata;
|
|
|
|
plan skip_all => "Test only supported in a shared build" if disabled("shared");
|
|
|
|
plan tests => 4;
|
|
|
|
my $libcrypto_idx = $unified_info{rename}->{libcrypto} // "libcrypto";
|
|
my $libssl_idx = $unified_info{rename}->{libssl} // "libssl";
|
|
my $libcrypto =
|
|
$unified_info{sharednames}->{$libcrypto_idx}.$target{shared_extension_simple};
|
|
my $libssl =
|
|
$unified_info{sharednames}->{$libssl_idx}.$target{shared_extension_simple};
|
|
|
|
ok(run(test(["shlibloadtest", "-crypto_first", $libcrypto, $libssl])),
|
|
"running shlibloadtest -crypto_first");
|
|
ok(run(test(["shlibloadtest", "-ssl_first", $libcrypto, $libssl])),
|
|
"running shlibloadtest -ssl_first");
|
|
ok(run(test(["shlibloadtest", "-just_crypto", $libcrypto, $libssl])),
|
|
"running shlibloadtest -just_crypto");
|
|
ok(run(test(["shlibloadtest", "-dso_ref", $libcrypto, $libssl])),
|
|
"running shlibloadtest -dso_ref");
|
|
|