VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/Config.kmk@ 97979

最後變更 在這個檔案從97979是 97979,由 vboxsync 提交於 2 年 前

libs/openssl-3.0.7: Edit openssl headers on staging/install when using older gcc that warns about pragma once being obsolete. ValKit build has some 45000 warnings about this. This also changes the openssl templates to use the staged headers when compiling rather than the ones in the src/libs/openssl-3.0.7/include.

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 17.4 KB
 
1# $Id: Config.kmk 97979 2023-01-04 14:35:52Z vboxsync $
2## @file
3# OpenSSL kBuild Configuration file.
4#
5
6#
7# Copyright (C) 2006-2022 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.alldomusa.eu.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28# Include the top-level configure file.
29ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
30 include $(PATH_ROOT)/Config.kmk
31endif
32
33# Figure out openssl perl asm style for the target
34VBOX_CRYPTO_ASM_SCHEME := portme
35if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
36 VBOX_CRYPTO_ASM_SCHEME := elf
37else ifeq ($(KBUILD_TARGET), darwin)
38 VBOX_CRYPTO_ASM_SCHEME := macosx
39else ifeq ($(KBUILD_TARGET), win)
40 VBOX_CRYPTO_ASM_SCHEME := nasm
41endif
42
43# Can't use relative paths when dealing with sub-makefiles.
44VBOX_PATH_OPENSSL := $(PATH_ROOT)/src/libs/openssl-3.0.7
45VBOX_PATH_CRYPTO := $(VBOX_PATH_OPENSSL)/crypto
46VBOX_PATH_CRYPTO_GENASM := $(VBOX_PATH_CRYPTO)/genasm-$(VBOX_CRYPTO_ASM_SCHEME)
47VBOX_PATH_CRYPTO_AES := $(VBOX_PATH_CRYPTO)/aes
48VBOX_PATH_CRYPTO_BN := $(VBOX_PATH_CRYPTO)/bn
49VBOX_PATH_CRYPTO_CHACHA := $(VBOX_PATH_CRYPTO)/chacha
50VBOX_PATH_CRYPTO_EC := $(VBOX_PATH_CRYPTO)/ec
51VBOX_PATH_CRYPTO_MD5 := $(VBOX_PATH_CRYPTO)/md5
52VBOX_PATH_CRYPTO_MODES := $(VBOX_PATH_CRYPTO)/modes
53VBOX_PATH_CRYPTO_POLY1305 := $(VBOX_PATH_CRYPTO)/poly1305
54VBOX_PATH_CRYPTO_RC4 := $(VBOX_PATH_CRYPTO)/rc4
55VBOX_PATH_CRYPTO_SHA := $(VBOX_PATH_CRYPTO)/sha
56VBOX_PATH_CRYPTO_DES := $(VBOX_PATH_CRYPTO)/des
57VBOX_PATH_CRYPTO_CAMELLIA := $(VBOX_PATH_CRYPTO)/camellia
58VBOX_INST_CRYPTO_HEADERS := obj/$(if-expr "$(CURSUBDIR)" == ".",,$(CURSUBDIR)/)crypto-3.0.7-headers/include/openssl/
59VBOX_PATH_CRYPTO_HEADERS := $(abspath $(PATH_OUT))/$(patsubst %/,%,$(VBOX_INST_CRYPTO_HEADERS))
60VBOX_PATH_CRYPTO_PROVIDERS := $(VBOX_PATH_OPENSSL)/providers
61
62# Enable asm implementation of crypto.
63if1of ($(KBUILD_TARGET_ARCH), x86 amd64)
64 ifneq ($(VBOX_CRYPTO_ASM_SCHEME),portme)
65 ifn1of ($(KBUILD_TARGET), ) # Selective exclusion for testing.
66 VBOX_WITH_CRYPTO_ASM = 1
67 endif
68 endif
69endif
70
71#
72# A target for installer the header files into a include directory
73# for the build. We have to put this in the Config.kmk because it
74# is required when running make from a sub directory too.
75#
76INSTALLS += crypto-headers
77crypto-headers_TEMPLATE := DUMMY
78crypto-headers_INST = $(VBOX_INST_CRYPTO_HEADERS)
79crypto-headers_MODE := a+r,u+w
80crypto-headers_DEFPATH = $(VBOX_PATH_OPENSSL)
81crypto-headers_SOURCES := \
82 include/openssl/aes.h=>aes.h \
83 include/openssl/asn1err.h=>asn1err.h \
84 include/openssl/asn1_mac.h=>asn1_mac.h \
85 include/openssl/async.h=>async.h \
86 include/openssl/asyncerr.h=>asyncerr.h \
87 include/openssl/bioerr.h=>bioerr.h \
88 include/openssl/blowfish.h=>blowfish.h \
89 include/openssl/bn.h=>bn.h \
90 include/openssl/bnerr.h=>bnerr.h \
91 include/openssl/buffer.h=>buffer.h \
92 include/openssl/buffererr.h=>buffererr.h \
93 include/openssl/camellia.h=>camellia.h \
94 include/openssl/cast.h=>cast.h \
95 include/openssl/cmac.h=>cmac.h \
96 include/openssl/cmserr.h=>cmserr.h \
97 include/openssl/comp.h=>comp.h \
98 include/openssl/comperr.h=>comperr.h \
99 include/openssl/conferr.h=>conferr.h \
100 include/openssl/conf_api.h=>conf_api.h \
101 include/openssl/conftypes.h=>conftypes.h \
102 include/openssl/core.h=>core.h \
103 include/openssl/core_dispatch.h=>core_dispatch.h \
104 include/openssl/core_names.h=>core_names.h \
105 include/openssl/cryptoerr.h=>cryptoerr.h \
106 include/openssl/cryptoerr_legacy.h=>cryptoerr_legacy.h \
107 include/openssl/cterr.h=>cterr.h \
108 include/openssl/des.h=>des.h \
109 include/openssl/dh.h=>dh.h \
110 include/openssl/dherr.h=>dherr.h \
111 include/openssl/dsa.h=>dsa.h \
112 include/openssl/dsaerr.h=>dsaerr.h \
113 include/openssl/dtls1.h=>dtls1.h \
114 include/openssl/ebcdic.h=>ebcdic.h \
115 include/openssl/ec.h=>ec.h \
116 include/openssl/ecerr.h=>ecerr.h \
117 include/openssl/ecdh.h=>ecdh.h \
118 include/openssl/ecdsa.h=>ecdsa.h \
119 include/openssl/engine.h=>engine.h \
120 include/openssl/engineerr.h=>engineerr.h \
121 include/openssl/evp.h=>evp.h \
122 include/openssl/evperr.h=>evperr.h \
123 include/openssl/e_os2.h=>e_os2.h \
124 include/openssl/hmac.h=>hmac.h \
125 include/openssl/http.h=>http.h \
126 include/openssl/idea.h=>idea.h \
127 include/openssl/macros.h=>macros.h \
128 include/openssl/md2.h=>md2.h \
129 include/openssl/md4.h=>md4.h \
130 include/openssl/md5.h=>md5.h \
131 include/openssl/mdc2.h=>mdc2.h \
132 include/openssl/modes.h=>modes.h \
133 include/openssl/objects.h=>objects.h \
134 include/openssl/objectserr.h=>objectserr.h \
135 include/openssl/obj_mac.h=>obj_mac.h \
136 include/openssl/ocsperr.h=>ocsperr.h \
137 openssl-mangling.h=>openssl-mangling.h \
138 include/openssl/opensslconf.h=>opensslconf.h \
139 include/openssl/ossl_typ.h=>ossl_typ.h \
140 include/openssl/params.h=>params.h \
141 include/openssl/pem.h=>pem.h \
142 include/openssl/pemerr.h=>pemerr.h \
143 include/openssl/pem2.h=>pem2.h \
144 include/openssl/pkcs12err.h=>pkcs12err.h \
145 include/openssl/pkcs7err.h=>pkcs7err.h \
146 include/openssl/prov_ssl.h=>prov_ssl.h \
147 include/openssl/rand.h=>rand.h \
148 include/openssl/randerr.h=>randerr.h \
149 include/openssl/rc2.h=>rc2.h \
150 include/openssl/rc4.h=>rc4.h \
151 include/openssl/ripemd.h=>ripemd.h \
152 include/openssl/rsa.h=>rsa.h \
153 include/openssl/rsaerr.h=>rsaerr.h \
154 include/openssl/seed.h=>seed.h \
155 include/openssl/sha.h=>sha.h \
156 include/openssl/srtp.h=>srtp.h \
157 include/openssl/sslerr.h=>sslerr.h \
158 include/openssl/sslerr_legacy.h=>sslerr_legacy.h \
159 include/openssl/ssl2.h=>ssl2.h \
160 include/openssl/ssl3.h=>ssl3.h \
161 include/openssl/stack.h=>stack.h \
162 include/openssl/symhacks.h=>symhacks.h \
163 include/openssl/tls1.h=>tls1.h \
164 include/openssl/ts.h=>ts.h \
165 include/openssl/txt_db.h=>txt_db.h \
166 include/openssl/types.h=>types.h \
167 include/openssl/uierr.h=>uierr.h \
168 include/openssl/x509err.h=>x509err.h \
169 include/openssl/x509v3err.h=>x509v3err.h \
170 gen-includes/openssl/asn1.h=>asn1.h \
171 gen-includes/openssl/asn1t.h=>asn1t.h \
172 gen-includes/openssl/bio.h=>bio.h \
173 gen-includes/openssl/cmp.h=>cmp.h \
174 gen-includes/openssl/cms.h=>cms.h \
175 gen-includes/openssl/conf.h=>conf.h \
176 gen-includes/openssl/configuration.h=>configuration.h \
177 gen-includes/openssl/crmf.h=>crmf.h \
178 gen-includes/openssl/crypto.h=>crypto.h \
179 gen-includes/openssl/ct.h=>ct.h \
180 gen-includes/openssl/err.h=>err.h \
181 gen-includes/openssl/ess.h=>ess.h \
182 gen-includes/openssl/fipskey.h=>fipskey.h \
183 gen-includes/openssl/lhash.h=>lhash.h \
184 gen-includes/openssl/ocsp.h=>ocsp.h \
185 gen-includes/openssl/opensslv.h=>opensslv.h \
186 gen-includes/openssl/pkcs12.h=>pkcs12.h \
187 gen-includes/openssl/pkcs7.h=>pkcs7.h \
188 gen-includes/openssl/safestack.h=>safestack.h \
189 gen-includes/openssl/srp.h=>srp.h \
190 gen-includes/openssl/ssl.h=>ssl.h \
191 gen-includes/openssl/ui.h=>ui.h \
192 gen-includes/openssl/x509.h=>x509.h \
193 gen-includes/openssl/x509_vfy.h=>x509_vfy.h \
194 gen-includes/openssl/x509v3.h=>x509v3.h
195
196## Workaround for GCC 3.3.x or older always warning about '\#pragma once' being obsolete.
197#
198# We edit the headers during installation and qualifies the \#pragma once with
199# RT_WITHOUT_PRAGMA_ONCE like we do for our own headers (defined root templates).
200#
201# 1=<src>, 2=<dst>, 3=<target>, 4=<flags>, 5=install|stage
202# context vars: uid, gid, mode
203#
204if "$(VBOX_GCC_VERSION_CC)" < 30400 && "$(KBUILD_TARGET)" != "win"
205 define crypto-headers_INSTALLER
206 $$(RM) -f -- "$(2)"
207 $$(SED) -e 's/^\([#][[:space:]]*\)pragma[[:space:]][[:space:]]*once.*/\1ifndef RT_WITHOUT_PRAGMA_ONCE\n\1 pragma once\n\1endif/' \
208 --output "$(2)" "$(1)"
209 $(if $(mode),$(CHMOD) "$(mode)" -- "$(2)",)
210 endef
211endif
212
213#
214# The templates used for the crypo lib and all its sublibraries.
215#
216TEMPLATE_LIBCRYPTO = Template for the OpenSSL crypto library.
217TEMPLATE_LIBCRYPTO_EXTENDS = VBoxR3RuntimeDllNonPedantic
218ifneq ($(KBUILD_TARGET), win)
219 ## @todo correct inheritance here to make it use all the VBOXR3NP settings instead of overriding all of them.
220 TEMPLATE_LIBCRYPTO_ASTOOL = $(TEMPLATE_VBoxR3RuntimeDllNonPedantic_TOOL)
221 TEMPLATE_LIBCRYPTO_ASFLAGS = -include $(VBOX_PATH_OPENSSL)/openssl-mangling.h
222 TEMPLATE_LIBCRYPTO_ASFLAGS.x86 = -m32
223 TEMPLATE_LIBCRYPTO_ASFLAGS.amd64 = -m64
224 TEMPLATE_LIBCRYPTO_ASDEFS = $(NO_SUCH_VARIABLE)
225 TEMPLATE_LIBCRYPTO_ASDEFS.darwin = OPENSSL_MANGLE_ASM
226 if "$(VBOX_AS_VERSION)" != "" && "$(VBOX_AS_VERSION)" vlt "GNU assembler version 2.20"
227 TEMPLATE_LIBCRYPTO_ASFLAGS.solaris = -include $(VBOX_PATH_OPENSSL)/crypto/old-solaris-asm-trick.h
228 endif
229endif
230
231TEMPLATE_LIBCRYPTO_DEFS = \
232 $(TEMPLATE_VBoxR3RuntimeDllNonPedantic_DEFS) \
233 VBOX_SUFF_DLL=$(VBOX_SUFF_DLL) \
234 IN_RT_R3 \
235 DSO_NONE \
236 OPENSSL_USE_NODELETE \
237 OPENSSL_PIC \
238 OPENSSL_IA32_SSE2 \
239 OPENSSL_BUILDING_OPENSSL
240ifdef VBOX_WITH_CRYPTO_ASM
241TEMPLATE_LIBCRYPTO_DEFS += \
242 OPENSSL_BN_ASM_MONT \
243 OPENSSL_BN_ASM_GF2m \
244 SHA1_ASM \
245 SHA256_ASM \
246 SHA512_ASM \
247 RC4_ASM \
248 MD5_ASM \
249 AES_ASM \
250 VPAES_ASM \
251 ECP_NISTZ256_ASM \
252 PADLOCK_ASM \
253 POLY1305_ASM
254TEMPLATE_LIBCRYPTO_DEFS.amd64 = \
255 BSAES_ASM \
256 GHASH_ASM \
257 KECCAK1600_ASM \
258 OPENSSL_BN_ASM_MONT5 \
259 X25519_ASM
260else
261TEMPLATE_LIBCRYPTO_DEFS += \
262 OPENSSL_NO_ASM
263endif
264if1of ($(KBUILD_TARGET), linux solaris)
265TEMPLATE_LIBCRYPTO_DEFS += \
266 _REENTRANT \
267 _GNU_SOURCE
268endif
269ifeq ($(sort $(filter -fPIC,$(TEMPLATE_VBoxR3RuntimeDllNonPedantic_CFLAGS))),-fPIC)
270TEMPLATE_LIBCRYPTO_DEFS += \
271 OPENSSL_PIC
272endif
273TEMPLATE_LIBCRYPTO_DEFS.amd64 += \
274 MD32_REG_T=int
275ifeq ($(KBUILD_TARGET),win)
276TEMPLATE_LIBCRYPTO_DEFS += \
277 OPENSSL_SYSNAME_WIN32 \
278 OPENSSL_RAND_SEED_OS
279# Exclude WinCrypt.h, causes trouble all over the place
280TEMPLATE_LIBCRYPTO_DEFS += \
281 NOCRYPT
282endif
283if1of ($(KBUILD_TARGET_ARCH), x86 amd64 arm64)
284TEMPLATE_LIBCRYPTO_DEFS += \
285 L_ENDIAN
286else
287TEMPLATE_LIBCRYPTO_DEFS += \
288 B_ENDIAN
289endif
290ifeq ($(KBUILD_TARGET),os2)
291TEMPLATE_LIBCRYPTO_DEFS += \
292 OPENSSL_NO_SECURE_MEMORY
293endif
294if defined(VBOX_WITH_PARFAIT) #&& VBOX_GCC_VERSION_CC == 50301
295 TEMPLATE_LIBCRYPTO_DEFS += __STDC_NO_ATOMICS__
296endif
297# Enable for running with valgrind:
298#TEMPLATE_LIBCRYPTO_DEFS += PURIFY
299
300TEMPLATE_LIBCRYPTO_CFLAGS = $(filter-out $(VBOX_GCC_fvisibility-hidden),$(TEMPLATE_VBoxR3RuntimeDllNonPedantic_CFLAGS))
301TEMPLATE_LIBCRYPTO_CFLAGS.win = $(TEMPLATE_VBoxR3RuntimeDllNonPedantic_CFLAGS.win)
302TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4305 # asn1_lib.c(455) : warning C4305: 'type cast' : truncation from 'const unsigned char *' to 'unsigned long'
303TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4306 # tasn_new.c(338) : warning C4306: 'type cast' : conversion from 'int' to 'ASN1_VALUE *' of greater size
304TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4701 # tasn_dec.c(840) : warning C4701: potentially uninitialized local variable 'buf' used
305TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4101 # bn_asm.c(619) : warning C4101: 'bh' : unreferenced local variable
306TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4206 # e_camellia.c(120) : warning C4206: nonstandard extension used : translation unit is empty
307TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4232 # warning C4232: nonstandard extension used : 'malloc_func' : address of dllimport 'malloc' is not stati c, identity not guaranteed
308TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4146 # x_long.c(79) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
309TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4130 # b_addr.c(750) : warning C4130: '==' : logical operation on address of string constant
310TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4090 # ssl_lib.c(229) : warning C4090: 'function' : different 'const' qualifiers
311TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4310 # bss_acpt.c(223) : warning C4310: cast truncates constant value [(int)INVALID_SOCKET]
312TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4210 # bn_exp.c(913) : warning C4210: nonstandard extension used : function given file scope
313TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4067 # mem.c(14) : warning C4067: unexpected tokens following preprocessor directive - expected a newline
314
315if1of ($(VBOX_VCC_TOOL_STEM), VCC120)
316 TEMPLATE_LIBCRYPTO_CFLAGS.win += -wd4005 # sdk\v7.1\include\sal_supp.h(57) : warning C4005: '__useHeader' : macro redefinition
317endif
318TEMPLATE_LIBCRYPTO_CFLAGS.freebsd = -std=gnu99
319
320TEMPLATE_LIBCRYPTO_INCS := \
321 $(dir $(VBOX_PATH_CRYPTO_HEADERS)) \
322 $(VBOX_PATH_OPENSSL) \
323 $(VBOX_PATH_OPENSSL)/include \
324 $(VBOX_PATH_OPENSSL)/providers/common/include \
325 $(VBOX_PATH_OPENSSL)/providers/implementations/include \
326 $(VBOX_PATH_OPENSSL)/gen-includes \
327 $(VBOX_PATH_CRYPTO)/include \
328 $(VBOX_PATH_CRYPTO_MODES) \
329 $(VBOX_PATH_CRYPTO)/ec/curve448 \
330 $(VBOX_PATH_CRYPTO)/ec/curve448/arch_32 \
331 $(patsubst %/openssl,%,$(VBOX_PATH_CRYPTO_HEADERS))
332
333#TEMPLATE_LIBCRYPTO_INTERMEDIATES = $($(crypto-headers)_1_STAGE_TARGET)
334TEMPLATE_LIBCRYPTO_INTERMEDIATES := \
335 $(foreach f,$(crypto-headers_SOURCES),$(VBOX_PATH_CRYPTO_HEADERS)/$(lastword $(subst =>, ,$(f))))
336
337# Same as LIBCRYPTO except that we don't install these libraries.
338TEMPLATE_SUBLIBCRYPTO = Template for the OpenSSL crypto sub-libraries.
339TEMPLATE_SUBLIBCRYPTO_EXTENDS = LIBCRYPTO
340TEMPLATE_SUBLIBCRYPTO_INSTTYPE = none
341
342# Somewhat similar to LIBCRYPTO.
343TEMPLATE_LIBCRYPTOTST = Template for the OpenSSL crypto testcases.
344TEMPLATE_LIBCRYPTOTST_EXTENDS = VBOXR3TSTEXE
345TEMPLATE_LIBCRYPTOTST_DEFS = $(TEMPLATE_VBOXR3TSTEXE_DEFS) $(filter-out $(TEMPLATE_VBoxR3RuntimeDllNonPedantic_DEFS) IN_RT_R3,$(TEMPLATE_LIBCRYPTO_DEFS))
346TEMPLATE_LIBCRYPTOTST_INCS = $(TEMPLATE_LIBCRYPTO_INCS) $(TEMPLATE_VBOXR3TSTEXE_INCS)
347ifeq ($(KBUILD_TARGET),win)
348TEMPLATE_LIBCRYPTOTST_CFLAGS = $(filter-out $(VBOX_VCC_WERR), $(TEMPLATE_VBOXR3TSTEXE_CXXFLAGS)) $(VBOX_VCC_NON_PEDANTIC)
349else
350TEMPLATE_LIBCRYPTOTST_CFLAGS = $(filter-out $(VBOX_GCC_PEDANTIC_C), $(TEMPLATE_VBOXR3TSTEXE_CFLAGS)) $(VBOX_GCC_NON_PEDANTIC_C)
351endif
352TEMPLATE_LIBCRYPTOTST_LIBS = $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) $(TEMPLATE_VBOXR3TSTEXE_LIBS)
353
354
355ifdef VBOX_WITH_BLD_RTSIGNTOOL_SIGNING
356#
357# Build program versions of LIBCRYPTO and SUBLIBCRYPTO for bldRTSignTool.
358#
359TEMPLATE_VBoxLibCryptoBldProg = Build program template the OpenSSL crypto library.
360TEMPLATE_VBoxLibCryptoBldProg_EXTENDS := VBoxAdvBldProg
361TEMPLATE_VBoxLibCryptoBldProg_DEFS = $(TEMPLATE_VBoxAdvBldProg_DEFS) $(TEMPLATE_LIBCRYPTO_DEFS)
362TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win = $(TEMPLATE_VBoxAdvBldProg_CFLAGS.win) $(subst $(TEMPLATE_VBoxR3RuntimeDllNonPedantic_CFLAGS.win),, $(TEMPLATE_LIBCRYPTO_CFLAGS.win))
363TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4057 # refcount.h(137): warning C4057: 'function': 'volatile long *' differs in indirection to slightly different base types from 'volatile int *'
364TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4100 # refcount.h(135): warning C4100: 'lock': unreferenced formal parameter
365TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4132 # curve25519.c(5497): warning C4132: 'allzeroes': const object should be initialized
366TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4189 # eng_list.c(373): warning C4189: 'load_dir': local variable is initialized but not referenced
367TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4245 # bn_div.c(353): warning C4245: '=': conversion from '__int64' to 'unsigned __int64', signed/unsigned mismatch
368TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4255 # ctype.c(314): warning C4255: 'ossl_c_locale': no function prototype given: converting '()' to '(void)'
369TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4267 # p12_utl.c(23): warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data
370TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4389 # encoder_pkey.c(110): warning C4389: '!=': signed/unsigned mismatch
371TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4668 # limits.h(70): warning C4668: '__STDC_WANT_SECURE_LIB__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
372TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.win += -wd4702 # ctrl_params_translate.c(681) : warning C4702: unreachable code
373TEMPLATE_VBoxLibCryptoBldProg_CFLAGS.freebsd = $(TEMPLATE_VBoxAdvBldProg_CFLAGS.freebsd) $(subst $(TEMPLATE_VBoxR3RuntimeDllNonPedantic_CFLAGS.freebsd),, $(TEMPLATE_LIBCRYPTO_CFLAGS.freebsd))
374TEMPLATE_VBoxLibCryptoBldProg_INCS = $(TEMPLATE_LIBCRYPTO_INCS) $(TEMPLATE_VBoxAdvBldProg_INCS)
375TEMPLATE_VBoxLibCryptoBldProg_INTERMEDIATES = $(TEMPLATE_VBoxAdvBldProg_INTERMEDIATES) $(TEMPLATE_LIBCRYPTO_INTERMEDIATES)
376
377TEMPLATE_VBoxSubLibCryptoBldProg = Build program template a OpenSSL crypto sub-library.
378TEMPLATE_VBoxSubLibCryptoBldProg_EXTENDS := VBoxLibCryptoBldProg
379TEMPLATE_VBoxSubLibCryptoBldProg_INSTTYPE = none
380endif # VBOX_WITH_BLD_RTSIGNTOOL_SIGNING
381
382
383#
384# 32-bit version of LIBCRYPTO and SUBLIBCRYPTO.
385#
386TEMPLATE_VBoxLibCrypto-x86 = 32-bit template for the OpenSSL crypto library.
387TEMPLATE_VBoxLibCrypto-x86_EXTENDS = LIBCRYPTO
388TEMPLATE_VBoxLibCrypto-x86_BLD_TRG_ARCH = x86
389TEMPLATE_VBoxLibCrypto-x86_DEFS = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_LIBCRYPTO_DEFS)) HC_ARCH_BITS=32 ARCH_BITS=32
390
391TEMPLATE_VBoxSubLibCrypto-x86 = 32-bit template for the OpenSSL crypto sub-library.
392TEMPLATE_VBoxSubLibCrypto-x86_EXTENDS = VBoxLibCrypto-x86
393TEMPLATE_VBoxSubLibCrypto-x86_INSTTYPE = none
394
395ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
396 define VBOX_OPENSSL_X86
397 $(eval LIBRARIES += $(1)-x86)
398 $(1)-x86_TEMPLATE := VBoxSubLibCrypto-x86
399 $(1)-x86_EXTENDS := $(1)
400 endef
401else
402 define VBOX_OPENSSL_X86
403 endef
404endif
405
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette