<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/Configurations/50-cppbuilder.conf, branch openssl-3.6.4</title>
<subtitle>TLS/SSL and crypto library.</subtitle>
<id>http://git.bktus.com/gpgfrontend/openssl/atom?h=openssl-3.6.4</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/openssl/atom?h=openssl-3.6.4'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/'/>
<updated>2025-01-08T10:13:10Z</updated>
<entry>
<title>Added configuration for Embarcadero-Borland Clang Compiler 64 (BCC64)</title>
<updated>2025-01-08T10:13:10Z</updated>
<author>
<name>Семенов Герман</name>
<email>GermanAizek@yandex.ru</email>
</author>
<published>2024-03-26T11:06:57Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=bbd181166391e4e1fd0a647f43b8b239609298ea'/>
<id>urn:sha1:bbd181166391e4e1fd0a647f43b8b239609298ea</id>
<content type='text'>
Signed-off-by: Герман Семенов &lt;GermanAizek@yandex.ru&gt;
Signed-off-by: Herman Semenov &lt;GermanAizek@yandex.ru&gt;

Reviewed-by: Hugo Landau &lt;hlandau@devever.net&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/23377)
</content>
</entry>
<entry>
<title>Configuration: rework how dependency making is handled</title>
<updated>2021-04-28T19:35:26Z</updated>
<author>
<name>Richard Levitte</name>
<email>levitte@openssl.org</email>
</author>
<published>2021-04-26T07:17:05Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=2e535eb50aa9c6b73c796f668e1aef8bc17f14c4'/>
<id>urn:sha1:2e535eb50aa9c6b73c796f668e1aef8bc17f14c4</id>
<content type='text'>
Previously, we had dependency making pretty much hard coded in the
build file templates, with a bit of an exception for Unix family
platforms, where we had different cases depending on what dependency
making program was found.

With the Embarcadero C++ builder, a separate scheme appeared, with a
different logic.

This change merges the two, and introduces two config target
attributes:

    makedepcmd          The program to use, where this is relevant.
                        This replaces the earlier configuration
                        attribute 'makedepprog'.
    makedep_scheme      This is a keyword that can be used by build
                        files templates to produce different sorts of
                        commands, but most importantly, to pass as
                        argument to util/add-depend.pl, which uses
                        this keyword as a "producer" for the
                        dependency lines.

If the config target doesn't define the 'makedep_scheme' attribute,
Configure tries to figure it out by looking for GCC compatible
compilers or for the 'makedepend' command.

Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Matthias St. Pierre &lt;Matthias.St.Pierre@ncp-e.com&gt;
(Merged from https://github.com/openssl/openssl/pull/15006)
</content>
</entry>
<entry>
<title>Windows bulding: Make dependency generation not quite as talkative</title>
<updated>2021-04-28T19:35:26Z</updated>
<author>
<name>Richard Levitte</name>
<email>levitte@openssl.org</email>
</author>
<published>2021-04-23T14:19:23Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=0bd138b8c36c7e8e504beb2c12a2771929c24cfb'/>
<id>urn:sha1:0bd138b8c36c7e8e504beb2c12a2771929c24cfb</id>
<content type='text'>
The modified way to generate .d files had an unfortunate side effect,
that it outputs the whole preprocessed file and not just the dependency
lines, at least with MSVC's cl.  That gave util/add-depends.pl a whole
lot more to read through, which impacts greatly on the performance of
dependency treatment.

We modify the process by adding a config target attribute 'make_depend',
which can be any suitable command for generating such lines.  All it
needs is to also accept C flags and macro definitions.

Fixes #14994

Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Matthias St. Pierre &lt;Matthias.St.Pierre@ncp-e.com&gt;
(Merged from https://github.com/openssl/openssl/pull/15006)
</content>
</entry>
<entry>
<title>Remove crypt32.lib from C++Builder configuration</title>
<updated>2021-04-19T09:05:55Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-12-14T23:31:49Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=5ae52001e115452ca285713feb1c2feaf07902ad'/>
<id>urn:sha1:5ae52001e115452ca285713feb1c2feaf07902ad</id>
<content type='text'>
`import32.lib` serves the purpose for most Windows API libraries, including this one. For example, with a GNU `grep` utility:

&gt;tdump %BDS%\lib\win32c\release\import32.lib | grep -B 3 -A 1 CertOpenStore
171E32 COMENT  Purge: Yes, List: Yes, Class: 160 (0A0h), SubClass: 1 (01h)
    Dynamic link import (IMPDEF)
      Imported by: name
      Internal Name: CertOpenStore
      Module Name: CRYPT32.dll

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
<entry>
<title>Link with uplink module</title>
<updated>2021-04-19T09:05:55Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-12-13T18:04:43Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=daf98015aac8bf392cf95edf9a54d845c1c22fd7'/>
<id>urn:sha1:daf98015aac8bf392cf95edf9a54d845c1c22fd7</id>
<content type='text'>
The Clang-based `bcc32c.exe` expects AT&amp;T syntax for inline assembly.
References:
 - http://docwiki.embarcadero.com/RADStudio/Sydney/en/Differences_Between_Clang-enhanced_C%2B%2B_Compilers_and_Previous-Generation_C%2B%2B_Compilers#Inline_Assembly
 - https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
 - https://sourceware.org/binutils/docs/as/i386_002dVariations.html

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
<entry>
<title>Link with .def files</title>
<updated>2021-04-19T09:05:55Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-12-13T18:01:46Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=491a1e3363228e8276ee293a86acd7a961ffe9d3'/>
<id>urn:sha1:491a1e3363228e8276ee293a86acd7a961ffe9d3</id>
<content type='text'>
MSVC's `link.exe` automatically finds `__cdecl` C functions (which are
decorated with a leading underscore by the compiler) when they are
mentioned in a `.def` file without the leading underscore.  This is an
[under-documented feature][1] of MSVC's `link.exe`.  C++Builder's
`ilink32.exe` doesn't do this, and thus needs the name-translation in
the `.def` file.  Then `implib.exe` needs to be told to re-add it.

(The Clang-based `bcc32c.exe` doesn't implement the [`-vu` or `-u-`][2]
options to skip adding the leading underscore to `__cdecl` C function
names, so this is the only way to have things work with non-underscored
export names in the DLLs.)

[1]: https://github.com/MicrosoftDocs/cpp-docs/issues/2653
[2]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Options_Not_Supported_by_Clang-enhanced_C%2B%2B_Compilers#BCC32_Options_that_Are_Not_Supported_by_Clang-enhanced_C.2B.2B_Compilers

Also silence linker warnings on duplicate symbols and ensure that error-
case cleanup in link rules work in C++Builder's `make.exe`.

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
<entry>
<title>Generate dependency information</title>
<updated>2021-04-19T09:05:55Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-12-10T14:53:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=16f2a44435fccbd7466b0659220c765a17e5d0c0'/>
<id>urn:sha1:16f2a44435fccbd7466b0659220c765a17e5d0c0</id>
<content type='text'>
The Clang-based `bcc32c.exe` doesn't implement the `-Hp` option, so we
have to use [`cpp32.exe`][1] instead.  Therefore, change the dependency-
emitting command to use `$(CPP)` instead of `$(CC)`, which which also
uncovered the [existing bug of `2&gt;&amp;1` before `&gt; $dep`][2].  Also
C++Builder's `make.exe` doesn't implement `2&gt;&amp;1` in its command runner,
so wrap the whole line in a `cmd /C`.

[1]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/CPP32.EXE,_the_C_Compiler_Preprocessor
[2]: https://ss64.com/nt/syntax-redirection.html

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
<entry>
<title>Build resource files</title>
<updated>2021-04-19T09:05:54Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-12-09T00:29:14Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=6afb36342d4bc63a774fd96088ededfc00401e1d'/>
<id>urn:sha1:6afb36342d4bc63a774fd96088ededfc00401e1d</id>
<content type='text'>
We need to compile with [brcc32.exe][1] and link with [ilink32.exe][2].
The latter expects the `.res` files to be given in the final comma-
separated section in the command line (after the `.def` file).

[1]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/BRCC32.EXE,_the_Resource_Compiler
[2]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_ILINK32_and_ILINK64_on_the_Command_Line#Command-Line_Elements

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
<entry>
<title>Support DLL builds + Fix C RTL variants</title>
<updated>2021-04-19T09:05:54Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-12-06T23:04:45Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=5fee3fe2760d65a141873601c4b7b9fd2fc5c7b1'/>
<id>urn:sha1:5fee3fe2760d65a141873601c4b7b9fd2fc5c7b1</id>
<content type='text'>
We need to generate a import library without the version in the
filename. MSVC's `link.exe` accommodates this with the [`/implib:`
option][1], while C++Builder needs a separate run of [`implib.exe`][2].
Also fix the variants of the [C runtime library and startup objects][3].

[1]: https://docs.microsoft.com/en-us/cpp/build/reference/implib-name-import-library?view=msvc-160
[2]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/IMPLIB.EXE,_the_Import_Library_Tool_for_Win32
[3]: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Static_Runtime_Libraries

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
<entry>
<title>Ensure cw32mt.lib and import32.lib are linked to in no-sock mode</title>
<updated>2021-04-19T09:05:54Z</updated>
<author>
<name>Tanzinul Islam</name>
<email>tanzinul.islam@gmail.com</email>
</author>
<published>2020-11-28T22:56:53Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=c4f4cb14e3f06362c2ee9e0e480b816ab46f15b6'/>
<id>urn:sha1:c4f4cb14e3f06362c2ee9e0e480b816ab46f15b6</id>
<content type='text'>
Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
Reviewed-by: Dmitry Belyavskiy &lt;beldmit@gmail.com&gt;
(Merged from https://github.com/openssl/openssl/pull/13540)
</content>
</entry>
</feed>
