581 Commits

Author SHA1 Message Date
Richard Levitte
4fab3e24d6 Efence is antiquated, remove all traces of using it
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1768)
2016-10-22 01:24:54 +02:00
Matt Caswell
3ff3ee7a19 Use clang++ for C++ for the linux-x86_64-clang target
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-10-15 11:27:07 +01:00
Richard Levitte
fad599f7f1 Remove automatic RPATH - add user rpath support
Make Configure recognise -rpath and -R to support user added rpaths
for OSF1 and Solaris.  For convenience, add a variable LIBRPATH in the
Unix Makefile, which the users can use as follows:

    ./config [options] -Wl,-rpath,\$(LIBRPATH)

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-10-13 02:21:51 +02:00
Richard Levitte
075f7e2c60 Remove automatic RPATH
Before OpenSSL 1.1.0, binaries were installed in a non-standard
location by default, and runpath directories were therefore added in
those binaries, to make sure the executables would be able to find the
shared libraries they were linked with.

With OpenSSL 1.1.0 and on, binaries are installed in standard
directories by default, and the addition of runpath directories is
therefore not needed any more.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-10-13 02:21:51 +02:00
Richard Levitte
16b42d4d35 Add C++ settings in the Linux config targets
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-10-12 16:37:54 +02:00
Richard Levitte
7763472fe8 Add support for C++ in Configurations/unix-Makefile.tmpl
Note that it relies on a trick from Configure, where file names for
object files made from C++ source get '.cc' replaced with '_cc.o' to
recognise them.  This is needed so the correct compiler is used when
linking binaries.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-10-12 16:37:54 +02:00
Richard Levitte
ea24195850 Add support for C++ in Configure
A note: this will form object file names by changing '.cc' to
'_cc.o'.  This will permit other configuration code to recognise these
object files were built for C++ rather than C.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-10-12 16:37:54 +02:00
Ben Laurie
b7c9aa645e Remove untrue comment.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-10-02 23:12:15 +01:00
Ben Laurie
d423c5ad65 Make dependencies if Makefile is new.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-10-02 23:12:15 +01:00
Richard Levitte
47852e6ae7 descrip.mms.tmpl: in obj2bin, make sure an empty @deps means no empty lines
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-21 02:00:17 +02:00
Richard Levitte
41240e68d7 Simplify configudata.pm dependency generation
While we're at it, correct the fault in windows-makefile.tmpl

Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-09-17 21:15:12 +02:00
Richard Levitte
c5ad3076a6 Simplify the dependencies for remaking configdata.pm
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-09-16 11:52:50 +02:00
Richard Levitte
dc660c70b5 Use the registered conf file names as dependencies to build configdata.pm
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-09-16 11:52:50 +02:00
Richard Levitte
d602c2b680 Finally, make sure vms_term_sock.c is built on VMS
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-15 23:24:06 +02:00
Rich Salz
c7af65c7b2 GH1536: Install empty CT log list
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-09-14 18:22:33 -04:00
Richard Levitte
554b4019f5 VMS: Really don't force symbol mixed case when building DSOs
This is an amendment to the september 8 commit titled "VMS: Don't
force symbol mixed case when building DSOs"

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-14 18:04:43 +02:00
Andy Grundman
fa4618a280 Remove -xtarget=ultra from solaris(64)-sparcv9-cc builds.
This flag got moved after -xarch=v9 in 1.1.0 and had the unexpected
side effect of the compiler building for 32-bit v8plusa instead of v9.

GH#1521
CLA: none; trivial

Signed-off-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-09-13 15:27:04 +02:00
David Woodhouse
cdbbf99002 Add enginesdir to libcrypto.pc pkg-config file
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-09-12 16:18:47 +02:00
Richard Levitte
1750142f43 VMS: Use different C flags for programs that aren't to be installed
This is generalised by having the following macros for stuff that won't
be installed:

    NO_INST_LIB_CFLAGS, used instead of LIB_CFLAGS
    NO_INST_DSO_CFLAGS, used instead of DSO_CFLAGS
    NO_INST_BIN_CFLAGS, used instead of BIN_CFLAGS

They take values from corresponding target config fields if those are
defined, otherwise they take the respective values from LIB_CFLAGS,
DSO_CFLAGS and BIN_CFLAGS.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-09 00:12:54 +02:00
Richard Levitte
84f3867536 Build file templates: additional information to build file template functions
Send a bit information to the build file template functions.  For
src2obj(), the additional option 'product' holds the name of the final
file that the object file will go into.  Additionally, the diverse
functions will get the option 'installed', with a value that evaluates
true if the final product is to be installed, otherwise false.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-09 00:12:54 +02:00
Andy Polyakov
f780eaad5b Configurations/10-main.cf: AIX "facelift".
Improve interchangeability of aix*-gcc targets by linking shared
libraries with -static-libgcc, and address linking problems with
vendor compiler.

Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-09-08 09:11:29 +02:00
Richard Levitte
342a1a2379 Allow asan, msan and ubsan to be configured with shared libraries
The background story is that util/shlib_wrap.sh was setting LD_PRELOAD
or similar platform dependent variables, just in case the shared
libraries were built with -rpath.  Unfortunately, this doesn't work
too well with asan, msan or ubsan.

So, the solution is to forbid the combination of shared libraries,
-rpath and any of the sanity analyzers we can configure.

This changes util/shlib_wrap.sh so it only contains the code that sets
LD_PRELOAD when -rpath has been used when configuring.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-07 21:53:45 +02:00
Richard Levitte
7e5b8b93f2 Unix build: have the makedepend and cc actions in one recipe
In the case of using an independent makedepend, we had split that into
two separate recipes, one depending on the other.  However, there are
cases where the makedepend recipe was always trying, but doesn't
update the time stamp of the .d file because there are no actual
changes, and thereby causing constant updates of the object files.

This change makes one recipe that takes care of both makedepend och
cc, thereby avoiding these extra updates.

Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-09-05 16:07:45 +02:00
Andy Polyakov
c1ec40ef1d Configurations/10-main.conf: add android64-mips64 target.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-09-02 13:34:07 +02:00
Andy Polyakov
947716c187 MIPS assembly pack: adapt it for MIPS[32|64]R6.
MIPS[32|64]R6 is binary and source incompatible with previous MIPS ISA
specifications. Fortunately it's still possible to resolve differences
in source code with standard pre-processor and switching to trap-free
version of addition and subtraction instructions.

Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-09-02 13:33:17 +02:00
Andy Polyakov
a43249122b Configurations/10-main.conf: add android64-x86_64 target.
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-02 13:22:56 +02:00
Andy Polyakov
d5a39c12f0 Configurations/10-main.conf: fix omittions in commentary.
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-02 13:22:41 +02:00
Andy Polyakov
216a0cc4d6 Configurations/10-main.conf: remove solaris-x86-cc target.
Since vendor assembler can't assemble our modules with -KPIC flag,
it, assembly support, was not available as an option. But this
means lack of side-channel resistant code, which is incompatible
with security by todays standards.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-09-02 13:19:21 +02:00
Richard Levitte
d63c12c697 Have Configure's HASH or TABLE produce complete lists
Because some targets execute perl code that might die, we risk
incomplete lists.  Make it so dying doesn't happen when we're listing
targets.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-31 19:47:35 +02:00
Andy Polyakov
d8f432aa97 Add ecp_nistz256-ppc64 module.
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-29 23:12:32 +02:00
Richard Levitte
661a396373 VMS: honor --openssldir setting
Because of a perl operator priority mixup, the --openssldir argument
wasn't honored.

Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-08-26 22:59:07 +02:00
Andy Polyakov
3188c9509e Configurations/10-main.conf: fix solaris64-*-cc link problems.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-08-24 20:26:42 +01:00
Richard Levitte
68a39960a7 VMS: Use strict refdef extern model when building library object files
Most of the time, this isn't strictly needed.  However, in the default
extern model (called relaxed refdef), symbols are treated as weak
common objects unless they are initialised.  The librarian doesn't
include weak symbols in the (static) libraries, which renders them
invisible when linking a program with said those libraries, which is a
problem at times.

Using the strict refdef model is much more like standard C on all
other platforms, and thereby avoid the issues that come with the
relaxed refdef model.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-22 10:10:59 +02:00
klemens
6025001707 spelling fixes, just comments and readme.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1413)
2016-08-05 19:07:30 -04:00
Richard Levitte
715d69b0d5 When tr gets bracketed arguments, they need to be quoted
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-04 21:02:37 +02:00
Benjamin Kaduk
2b58c83e62 Remove some unused options from 10-main.conf
The options RC4_CHUNK_LL, DES_PTR, and BF_PTR were removed by Rich
in commit 3e9e810f2e047effb1056211794d2d12ec2b04e7 but were still
sticking around in a coupule configuration entries.

Since they're unused, remove them.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1390)
2016-08-04 14:30:31 -04:00
Richard Levitte
9ad7f6c692 VMS: make sure to provide an absolute source directory for pod2html
Experience shows that pod2html changes directory during its process
without properly adjusting the given source directory.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-03 15:44:37 +02:00
Richard Levitte
cb926df2fa Don't overwrite existing installed openssl.cnf
Instead, install the new one as openssl.cnf.dist (openssl.cnf-dist on
VMS), and only install it as openssl.cnf if that file doesn't already
exist.

Also, don't install with exec privileges on VMS.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-02 00:55:46 +02:00
Richard Levitte
66c2eb8b80 All of ssldirs installation should be done by the install_ssldirs target
The Unix build file template didn't do that quite right.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-02 00:55:46 +02:00
Andy Polyakov
4e155ec47e apps/openssl.c: UTF-y Windows argv.
Windows never composes UTF-8 strings as result of user interaction
such as passing command-line argument. The only way to compose one
is programmatic conversion from WCHAR string, which in turn can be
picked up on command line.

[For reference, why not wmain, it's not an option on MinGW.]

Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-08-01 09:52:06 +02:00
Andy Polyakov
e72769aa41 Configurations/00-base-templates.conf: harmonize BASE_Windows.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-08-01 09:51:30 +02:00
Andy Polyakov
9c7ce40bfb Configurations/unix-Makefile.tmpl: add LC_ALL=C to unify messages.
RT#4138

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-31 17:08:02 +02:00
Kurt Roeckx
5a3a546678 Add Hurd shared extension
Reviewed-by: Rich Salz <rsalz@openssl.org>
GH: #1345
2016-07-26 21:00:03 +02:00
Richard Levitte
82c78ee480 VMS: Rearrange installation targets for shared libraries
The way it was implemented before this change, the shared libraries
were installed twice.  On a file system that supports file
generations, that's a waste.  Slightly rearranging the install targets
solves the problem.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-22 09:25:26 +02:00
Richard Levitte
36b53720eb Install shared libraries in runtime install
On non-Windows platforms, shared libraries are both development and
runtime files.  We only installed them as development files, this
makes sure they get installed as runtime files as well.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-20 14:16:11 +02:00
Richard Levitte
1bcb2b3130 VMS: fix typo, shared libraries have the extension .EXE, not .OLB
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-20 14:16:11 +02:00
Richard Levitte
1e3d16b0a6 Don't make a difference between building test programs and other programs
This adds a new target 'build_programs' and makes 'build_apps' and
'build_tests' aliases for it, for backward compatibility.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-18 20:49:54 +02:00
Richard Levitte
0f01b7bc85 Adapt the build files to the new "install" hash table
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-18 20:49:54 +02:00
Richard Levitte
52fef270bf Document the _NO_INST variants
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-07-18 20:49:54 +02:00
Richard Levitte
1fc431ba57 Windows: allow input and output flags to end with a space, or not
With a number of tools, especially those coming with Visual Studio,
some command options are separated from their argument with a space,
others with a space.  Since we parametrise them, we can't know
beforehand which it will be, so we must allow the input and output
options to have either.

However, spaces at the end of nmake macro values are trimmed, so allow
spaces to exist by adding a reference to an undefined macro at the end.

Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-07-15 13:49:22 +02:00