Commit 9c62a279 authored by Richard Levitte's avatar Richard Levitte
Browse files

Configure - Get rid of the special thread_cflag, replace with thread_scheme



The thread_cflag setting filled a double role, as kinda sorta an
indicator of thread scheme, and as cflags.  Some configs also added
lflags and ex_libs for multithreading regardless of if threading would
be enabled or not.

Instead of this, add threading cflags among in the cflag setting,
threading lflags in the lflag setting and so on if and only if threads
are enabled (which they are by default).

Also, for configs where there are no special cflags for threading (the
VMS configs are of that kind), this makes it possible to still clearly
mention what thread scheme is used.

The exact value of thread scheme is currently ignored except when it's
"(unknown)", and thereby only serves as a flag to tell if we know how
to build for multi-threading in a particular config.  Yet, the
currently used values are "(unknown)", "pthreads", "uithreads" (a.k.a
solaris threads) and "winthreads".

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
parent 8864f0de
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@

	cflags		=> "",
	defines		=> [],
	thread_cflags	=> "",
	thread_scheme	=> "(unknown)", # Assume we don't know
	thread_defines	=> [],

	apps_aux_src	=> "",
+190 −146

File changed.

Preview size limit exceeded, changes collapsed.

+34 −17
Original line number Diff line number Diff line
## -*- mode: perl; -*-
## Build configuration targets for openssl-team members

sub threads {
    my @flags = @_;
    return sub { add($disabled{threads} ? () : @flags)->(); }
}

sub combine {
    my @stuff = @_;
    return sub { add(@stuff)->(); }
}

%targets = (
    "purify" => {
        cc               => "purify gcc",
        cflags           => "-g -Wall",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
        ex_libs          => add(" ","-lsocket -lnsl"),
    },
    "debug" => {
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
        ex_libs          => add(" ","-lefence"),
    },
    "debug-erbridge" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "gcc",
        cflags           => "$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "linux-shared",
@@ -32,28 +43,31 @@
    "debug-linux-pentium" => {
        inherit_from     => [ "x86_elf_asm" ],
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -mcpu=pentium -Wall",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -mcpu=pentium -Wall",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "BN_LLONG",
        thread_scheme    => "pthreads",
        dso_scheme       => "dlfcn",
    },
    "debug-linux-ppro" => {
        inherit_from     => [ "x86_elf_asm" ],
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -mcpu=pentiumpro -Wall",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -mcpu=pentiumpro -Wall",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "BN_LLONG",
        thread_scheme    => "pthreads",
        dso_scheme       => "dlfcn",
    },
    "debug-linux-elf-noefence" => {
        inherit_from     => [ "x86_elf_asm" ],
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -Wall",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DL_ENDIAN -g -Wall",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "BN_LLONG",
        thread_scheme    => "pthreads",
        dso_scheme       => "dlfcn",
        shared_target    => "linux-shared",
        shared_cflag     => "-fPIC",
@@ -61,8 +75,8 @@
    },
    "debug-linux-ia32-aes" => {
        cc               => "gcc",
        cflags           => "-DL_ENDIAN -O3 -fomit-frame-pointer -Wall",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("-DL_ENDIAN -O3 -fomit-frame-pointer -Wall",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "BN_LLONG",
        cpuid_asm_src    => "x86cpuid.s",
@@ -79,6 +93,7 @@
        wp_asm_src       => "wp_block.s wp-mmx.s",
        modes_asm_src    => "ghash-x86.s",
        padlock_asm_src  => "e_padlock-x86.s",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "linux-shared",
@@ -88,14 +103,15 @@
    "dist" => {
        cc               => "cc",
        cflags           => "-O",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-test-64-clang" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "clang",
        cflags           => "$gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
        thread_cflag     => "${BSDthreads}",
        cflags           => combine("$gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
                                    threads("${BSDthreads}")),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "bsd-gcc-shared",
@@ -105,10 +121,11 @@
    "darwin64-debug-test-64-clang" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "clang",
        cflags           => "-arch x86_64 -DL_ENDIAN $gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
        thread_cflag     => "${BSDthreads}",
        cflags           => combine("-arch x86_64 -DL_ENDIAN $gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
                                    threads("${BSDthreads}")),
        sys_id           => "MACOSX",
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "macosx",
        dso_scheme       => "dlfcn",
        shared_target    => "darwin-shared",
+19 −15
Original line number Diff line number Diff line
@@ -5,29 +5,30 @@
    "debug-ben" => {
        cc               => "gcc",
        cflags           => "$gcc_devteam_warn -DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -O2 -pipe",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-openbsd" => {
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-openbsd-debug" => {
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-debug" => {
        cc               => "gcc",
        cflags           => "$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DOPENSSL_NO_HW_PADLOCK -g3 -O2 -pipe",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-debug-64" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "gcc",
        cflags           => "$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
        thread_cflag     => "${BSDthreads}",
        cflags           => combine("$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
                                    threads("${BSDthreads}")),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "bsd-gcc-shared",
@@ -37,9 +38,10 @@
    "debug-ben-debug-64-clang" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "clang",
        cflags           => "$gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
        thread_cflag     => "${BSDthreads}",
        cflags           => combine("$gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
                                    threads("${BSDthreads}")),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "bsd-gcc-shared",
@@ -49,9 +51,10 @@
    "debug-ben-debug-64-noopt" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "gcc",
        cflags           => "$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -pipe",
        thread_cflag     => "${BSDthreads}",
        cflags           => combine("$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -pipe",
                                    threads("${BSDthreads}")),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "bsd-gcc-shared",
@@ -61,26 +64,27 @@
    "debug-ben-macos" => {
        cc               => "cc",
        cflags           => "$gcc_devteam_warn -DOPENSSL_NO_ASM -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch i386 -O3 -DL_ENDIAN -g3 -pipe",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-no-opt" => {
        cc               => "gcc",
        cflags           => " -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -Werror -DL_ENDIAN -Wall -g3",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-strict" => {
        cc               => "gcc",
        cflags           => "-DBN_DEBUG -DREF_DEBUG -DCONF_DEBUG -DBN_CTX_DEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe",
        thread_cflag     => "(unknown)",
        thread_scheme    => "(unknown)",
    },
    "debug-ben-darwin64" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "cc",
        cflags           => "$gcc_devteam_warn -Wno-language-extension-token -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int -Wall",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("$gcc_devteam_warn -Wno-language-extension-token -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int -Wall",
                                    threads("-D_REENTRANT")),
        sys_id           => "MACOSX",
        plib_lflags      => "-Wl,-search_paths_first",
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "macosx",
        dso_scheme       => "dlfcn",
        shared_target    => "darwin-shared",
+3 −2
Original line number Diff line number Diff line
@@ -5,10 +5,11 @@
    "debug-bodo" => {
        inherit_from     => [ "x86_64_asm" ],
        cc               => "gcc",
        cflags           => "$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int",
        thread_cflag     => "-D_REENTRANT",
        cflags           => combine("$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int",
                                    threads("-D_REENTRANT")),
        ex_libs          => add(" ","-ldl"),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        thread_scheme    => "pthreads",
        perlasm_scheme   => "elf",
        dso_scheme       => "dlfcn",
        shared_target    => "linux-shared",
Loading