]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Added configuration for Embarcadero-Borland Clang Compiler 64 (BCC64)
authorСеменов Герман <GermanAizek@yandex.ru>
Tue, 26 Mar 2024 11:06:57 +0000 (14:06 +0300)
committerTomas Mraz <tomas@openssl.org>
Wed, 8 Jan 2025 10:13:10 +0000 (11:13 +0100)
Signed-off-by: Герман Семенов <GermanAizek@yandex.ru>
Signed-off-by: Herman Semenov <GermanAizek@yandex.ru>
Reviewed-by: Hugo Landau <hlandau@devever.net>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23377)

Configurations/50-cppbuilder.conf
NOTES-WINDOWS.md

index f19928cb03a25dbfb83a43b2b19ef941d133ce01..92196857d38abef53c14e41d7e1ccf44ee9b7c85 100644 (file)
@@ -58,5 +58,64 @@ my %targets = (
         shared_defflag   => '',
         perl_platform    => 'Windows::cppbuilder',
         uplink_arch      => 'common',
+    },
+    "BC-64" => {
+        inherit_from     => [ "BASE_Windows" ],
+        sys_id           => "WIN64",
+        bn_ops           => "BN_LLONG",
+        thread_scheme    => "winthreads",
+        cc               => "bcc64",
+        CPP              => "cpp64 -oCON -Sc -Sr",
+        defines          => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN64",
+                                "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp",
+                                "_strnicmp=strnicmp", "_setmode=setmode"),
+        cflags           => picker(default => add("-q -c",
+                                                  threads("-tM"),
+                                                  shared("-tR")),
+                                   debug   => "-Od -v -vi- -D_DEBUG",
+                                   release => "-O2"),
+        bin_cflags       => "-tWC",
+        lib_cflags       => shared("-tWD -D_WINDLL -D_DLL"),
+        coutflag         => "-o",
+
+        # -Sx isn't documented, but 'cpp64 -H -S' explains it:
+        #
+        # -Sx     Omit preprocessed text in output
+        makedepcmd       => "cpp64 -oCON -Sx -Hp",
+        makedep_scheme   => "embarcadero",
+
+        LD               => "ilink64",
+        LDFLAGS          => picker(default => "-x -Gn -q -w-dup",
+                                   debug   => '-j"$(BDS)\lib\win64\debug" ' .
+                                              '-L"$(BDS)\lib\win64\debug" -v',
+                                   release => '-j"$(BDS)\lib\win64\release" ' .
+                                              '-L"$(BDS)\lib\win64\release"'),
+        bin_lflags       => "-ap -Tpe c0x64.o wildargs.o",
+        ldoutflag        => ",",
+        ldpostoutflag    => ",,",
+        ld_resp_delim    => " +\n",
+        ex_libs          => add(sub {
+            my @ex_libs = ("import64.a",
+                           ($disabled{shared}
+                            ? ($disabled{threads} ? "cw64.a" : "cw64mt.a")
+                            : ($disabled{threads} ? "cw64i.a" : "cw64mti.a")));
+            push @ex_libs, "ws2_32.a" unless $disabled{sock};
+            return join(" ", @ex_libs);
+        }),
+        AR               => "tlib",
+        ARFLAGS          => "/P256 /N /u",
+        ar_resp_delim    => " &\n",
+        RC               => "brcc32",
+        RCFLAGS          => '-i"$(BDS)\include\windows\sdk"',
+        rcoutflag        => "-fo",
+        shared_target    => "win-shared",
+        shared_ldflag    => "-aa -Tpd c0d64.o",
+        lddefflag        => ",",
+        ldresflag        => ",",
+        ld_implib_rule   => 'implib -a $< $**',
+        dso_scheme       => "win64",
+        shared_defflag   => '',
+        perl_platform    => 'Windows::cppbuilder',
+        uplink_arch      => 'common',
     }
 );
index 21c82e8a7659e3aaee6f95f1ee826c6bf0c2d868..16105ea041b0004c0e57c90dbc48a5d5ae4f01d9 100644 (file)
@@ -148,8 +148,8 @@ Native builds using Embarcadero C++Builder
 =========================================
 
 This toolchain (a descendant of Turbo/Borland C++) is an alternative to MSVC.
-OpenSSL currently includes an experimental 32-bit configuration targeting the
-Clang-based compiler (`bcc32c.exe`) in v10.3.3 Community Edition.
+OpenSSL currently includes experimental 32-bit and 64-bit configurations targeting the
+Clang-based compiler (`bcc32c.exe` and `bcc64.exe`) in v10.3.3 Community Edition.
 <https://www.embarcadero.com/products/cbuilder/starter>
 
  1. Install Perl.
@@ -158,6 +158,8 @@ Clang-based compiler (`bcc32c.exe`) in v10.3.3 Community Edition.
 
  3. Go to the root of the OpenSSL source directory and run:
     `perl Configure BC-32 --prefix=%CD%`
+    for Win64 builds use:
+    `perl Configure BC-64 --prefix=%CD%`
 
  4. `make -N`