VirtualBox

source: vbox/trunk/src/VBox/Runtime/Makefile.kmk@ 51851

Last change on this file since 51851 was 51851, checked in by vboxsync, 10 years ago

Renamed hash implementations to fit better into the build system, supplying the missing OpenSSL-based MD5. VBoxRT uses the OpenSSL variants, all other libraries uses the alternatives. Also removed stupid OpenSSL dependencies in RTSha1Digest.cpp and RTSha256Digest.cpp.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 90.8 KB
Line 
1# $Id: Makefile.kmk 51851 2014-07-03 14:01:28Z vboxsync $
2## @file
3# Sub-Makefile for the IPRT.
4#
5
6#
7# Copyright (C) 2006-2013 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# The contents of this file may alternatively be used under the terms
18# of the Common Development and Distribution License Version 1.0
19# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20# VirtualBox OSE distribution, in which case the provisions of the
21# CDDL are applicable instead of those of the GPL.
22#
23# You may elect to license modified versions of this file under the
24# terms and conditions of either the GPL or the CDDL or both.
25#
26
27SUB_DEPTH = ../../..
28include $(KBUILD_PATH)/subheader.kmk
29
30ifdef VBOX_ONLY_ADDITIONS
31 #
32 # Only build the additions, sort out the legacy names first.
33 #
34 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
35 LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
36 ifdef VBOX_WITH_ADDITION_DRIVERS
37 LIBRARIES += RuntimeGuestR0
38 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
39 LIBRARIES.win.x86 += RuntimeGuestR0NT4
40 endif
41
42else ifdef VBOX_ONLY_VALIDATIONKIT
43 #
44 # Only build the Validation Kit.
45 #
46 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeR3 RuntimeR0 RuntimeBldProg
47 LIBRARIES.solaris += RuntimeR0Stub
48 LIBRARIES.win += RuntimeR0Stub
49 LIBRARIES.win.x86 += RuntimeR3VccTricks
50 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
51
52else ifdef VBOX_ONLY_DOCS
53 #
54 # Build docs only - need just regular R3 runtime.
55 #
56 LIBRARIES += RuntimeR3 RuntimeBldProg
57
58else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
59 #
60 # Build docs only - need just regular R3 runtime.
61 #
62 LIBRARIES += RuntimeBldProg
63 LIBRARIES.solaris += RuntimeR0Stub
64 LIBRARIES.win += RuntimeR0Stub RuntimeRCStub
65 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
66
67else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_VALIDATIONKIT && !VBOX_ONLY_DOCS
68
69 #
70 # Normal build.
71 #
72 ifndef VBOX_ONLY_EXTPACKS
73 include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
74 endif
75 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
76
77 BLDPROGS += uniread
78 LIBRARIES += RuntimeR3 RuntimeBldProg RuntimeR0 RuntimeEFCPP RuntimeR3NoCRTGCC
79 LIBRARIES.solaris += RuntimeR0Stub
80 LIBRARIES.win += RuntimeR0Stub
81 ifdef VBOX_WITH_RAW_MODE
82 LIBRARIES += RuntimeRC
83 LIBRARIES.win += RuntimeRCStub
84 endif
85 ifdef VBOX_WITH_VBOXDRV
86 LIBRARIES += RuntimeR0Drv
87 endif
88 ifdef VBOX_WITH_ADDITIONS
89 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
90 LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
91 ifdef VBOX_WITH_ADDITION_DRIVERS
92 LIBRARIES += RuntimeGuestR0
93 endif
94 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
95 LIBRARIES.win.x86 += RuntimeGuestR0NT4
96 endif # VBOX_WITH_ADDITIONS
97 LIBRARIES.win.x86 += RuntimeR3VccTricks
98 DLLS += VBoxRT
99 ifdef VBOX_WITH_32_ON_64_MAIN_API
100 DLLS += VBoxRT-x86
101 endif
102endif
103
104
105# Always build the ntdll import libraries on windows.
106LIBRARIES.win += RuntimeR3NtDll-x86
107if1of (amd64, $(KBUILD_TARGET_ARCH) $(KBUILD_HOST_ARCH))
108 LIBRARIES.win += RuntimeR3NtDll-amd64
109endif
110
111
112# Always build the import library.
113IMPORT_LIBS += VBoxRTImp
114
115
116# Where the generated stuff goes.
117IPRT_OUT_DIR := $(PATH_TARGET)/Runtime
118BLDDIRS += $(IPRT_OUT_DIR)
119OTHER_CLEAN += \
120 $(IPRT_OUT_DIR)/errmsgdata.h \
121 $(IPRT_OUT_DIR)/errmsgcomdata.h \
122 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h \
123 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts \
124 $(IPRT_OUT_DIR)/Doxyfile.iprt \
125 $(IPRT_OUT_DIR)/Doxyfile.iprt.dep \
126 $(IPRT_OUT_DIR)/docs.iprt
127
128
129#
130# Globals
131#
132VBOX_PATH_RUNTIME_SRC := $(PATH_SUB_CURRENT)
133
134
135#
136# Set the defines that buildconfig.cpp needs. Its used by several targets.
137#
138common/misc/buildconfig.cpp_DEFS = \
139 IPRT_BLDCFG_SCM_REV=$(VBOX_SVN_REV) \
140 IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
141 IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
142 IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
143 IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD) \
144 IPRT_BLDCFG_TARGET=\"$(KBUILD_TARGET)\" \
145 IPRT_BLDCFG_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
146 IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
147
148#
149# Unicode Specification reader used to regenerate unidata-*.cpp.
150#
151uniread_TEMPLATE = VBoxBldProg
152uniread_SOURCES = common/string/uniread.cpp
153uniread_INCS = include
154
155#
156# Win64 assembly sources.
157#
158RuntimeWin64ASM_SOURCES = \
159 win/amd64/ASMAtomicBitClear.asm \
160 win/amd64/ASMAtomicBitTestAndToggle.asm \
161 win/amd64/ASMAtomicBitToggle.asm \
162 win/amd64/ASMAtomicReadU64.asm \
163 win/amd64/ASMAtomicXchgU16.asm \
164 win/amd64/ASMAtomicXchgU8.asm \
165 win/amd64/ASMBitFirstClear.asm \
166 win/amd64/ASMBitFirstSet.asm \
167 win/amd64/ASMGetCS.asm \
168 win/amd64/ASMGetDS.asm \
169 win/amd64/ASMGetES.asm \
170 win/amd64/ASMGetFlags.asm \
171 win/amd64/ASMGetFS.asm \
172 win/amd64/ASMGetGS.asm \
173 win/amd64/ASMGetSS.asm \
174 win/amd64/ASMProbeReadByte.asm \
175 win/amd64/ASMSetFlags.asm \
176 win/amd64/ASMGetDR0.asm \
177 win/amd64/ASMGetDR1.asm \
178 win/amd64/ASMGetDR2.asm \
179 win/amd64/ASMGetDR3.asm \
180 win/amd64/ASMGetDR6.asm \
181 win/amd64/ASMGetDR7.asm \
182 common/asm/ASMAtomicCmpXchgU8.asm \
183 common/asm/ASMMultU64ByU32DivByU32.asm \
184 common/asm/ASMCpuId_Idx_ECX.asm \
185 common/asm/ASMNopPause.asm \
186 common/asm/ASMGetIDTR.asm \
187 common/asm/ASMSetIDTR.asm \
188 common/asm/ASMGetGDTR.asm \
189 common/asm/ASMSetGDTR.asm \
190 common/asm/ASMGetLDTR.asm \
191 common/asm/ASMGetSegAttr.asm \
192 common/asm/ASMGetTR.asm
193
194#
195# Win32 assembly sources.
196#
197RuntimeWin32ASM_SOURCES = \
198 common/asm/ASMAtomicCmpXchgU8.asm \
199 common/asm/ASMMultU64ByU32DivByU32.asm \
200 common/asm/ASMCpuId_Idx_ECX.asm \
201 common/asm/ASMGetSegAttr.asm
202
203#
204# NoCRT sources (minus math stuff).
205#
206if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
207RuntimeNoCrt_SOURCES = \
208 common/misc/setjmp.asm \
209 common/string/memchr.asm \
210 common/string/memcmp.asm \
211 common/string/memcpy.asm \
212 common/string/mempcpy.asm \
213 common/string/memmove.asm \
214 common/string/memset.asm \
215 common/string/strchr.asm \
216 common/string/strcpy.asm \
217 common/string/strncpy.asm \
218 common/string/strcmp.asm \
219 common/string/strlen.asm
220endif
221
222
223#
224# RuntimeR3 - Static Runtime for Ring-3 executables.
225#
226RuntimeR3_TEMPLATE = VBoxR3Static
227RuntimeR3_SDKS = VBOX_OPENSSL VBOX_LIBXML2
228RuntimeR3_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK)
229RuntimeR3_DEFS = \
230 IN_RT_R3 \
231 IN_SUP_R3 \
232 LDR_WITH_NATIVE \
233 LDR_WITH_ELF32 \
234 LDR_WITH_PE \
235 RT_WITH_VBOX \
236 RT_NO_GIP \
237 RT_WITHOUT_NOCRT_WRAPPERS \
238 IPRT_WITH_OPENSSL
239#RuntimeR3_DEFS += RTMEM_WRAP_TO_EF_APIS
240ifdef IPRT_WITH_KSTUFF
241 RuntimeR3_DEFS += LDR_WITH_KLDR
242endif
243ifdef IPRT_WITH_LZJB
244 RuntimeR3_DEFS += RTZIP_USE_LZJB
245endif
246ifdef IPRT_WITH_LZO
247 RuntimeR3_DEFS += RTZIP_USE_LZO
248endif
249ifn1of ($(KBUILD_TARGET), win)
250 RuntimeR3_DEFS += RT_WITH_ICONV_CACHE
251endif
252ifdef IPRT_WITH_FUTEX_BASED_SEMS
253 RuntimeR3_DEFS.linux += IPRT_WITH_FUTEX_BASED_SEMS
254endif
255RuntimeR3_INCS = \
256 include \
257 $(SDK_VBOX_ZLIB_INCS)
258RuntimeR3_INCS += \
259 $(PATH_ROOT)/src/libs/liblzf-3.4
260ifdef IPRT_WITH_KSTUFF
261 RuntimeR3_INCS += \
262 $(PATH_ROOT)/src/libs/kStuff/kStuff/include
263endif
264
265# RuntimeR3_INCS.solaris = \
266# /usr/include
267
268RuntimeR3_SOURCES = \
269 common/alloc/alloc.cpp \
270 common/alloc/heapsimple.cpp \
271 common/alloc/heapoffset.cpp \
272 common/alloc/memcache.cpp \
273 common/alloc/memtracker.cpp \
274 common/asn1/asn1-basics.cpp \
275 common/asn1/asn1-cursor.cpp \
276 common/asn1/asn1-default-allocator.cpp \
277 common/asn1/asn1-dump.cpp \
278 common/asn1/asn1-encode.cpp \
279 common/asn1/asn1-ut-bitstring.cpp \
280 common/asn1/asn1-ut-bitstring-decode.cpp \
281 common/asn1/asn1-ut-boolean.cpp \
282 common/asn1/asn1-ut-boolean-decode.cpp \
283 common/asn1/asn1-ut-core.cpp \
284 common/asn1/asn1-ut-core-decode.cpp \
285 common/asn1/asn1-ut-dyntype.cpp \
286 common/asn1/asn1-ut-dyntype-decode.cpp \
287 common/asn1/asn1-ut-integer.cpp \
288 common/asn1/asn1-ut-integer-decode.cpp \
289 common/asn1/asn1-ut-null.cpp \
290 common/asn1/asn1-ut-null-decode.cpp \
291 common/asn1/asn1-ut-objid.cpp \
292 common/asn1/asn1-ut-objid-decode.cpp \
293 common/asn1/asn1-ut-octetstring.cpp \
294 common/asn1/asn1-ut-octetstring-decode.cpp \
295 common/asn1/asn1-ut-string.cpp \
296 common/asn1/asn1-ut-string-decode.cpp \
297 common/asn1/asn1-ut-time.cpp \
298 common/asn1/asn1-ut-time-decode.cpp \
299 common/checksum/adler32.cpp \
300 common/checksum/crc32.cpp \
301 common/checksum/crc32c.cpp \
302 common/checksum/crc64.cpp \
303 common/checksum/alt-md2.cpp \
304 common/checksum/alt-md5.cpp \
305 common/checksum/alt-sha1.cpp \
306 common/checksum/alt-sha256.cpp \
307 common/checksum/alt-sha512.cpp \
308 common/checksum/md2str.cpp \
309 common/checksum/md5str.cpp \
310 common/checksum/ipv4.cpp \
311 common/checksum/ipv6.cpp \
312 common/checksum/manifest.cpp \
313 common/checksum/manifest2.cpp \
314 common/checksum/manifest3.cpp \
315 common/checksum/manifest-file.cpp \
316 common/checksum/RTSha1Digest.cpp \
317 common/checksum/RTSha256Digest.cpp \
318 common/checksum/sha1str.cpp \
319 common/checksum/sha256str.cpp \
320 common/checksum/sha512str.cpp \
321 common/checksum/x509.cpp \
322 common/crypto/digest-core.cpp \
323 common/crypto/digest-builtin.cpp \
324 common/crypto/iprt-openssl.cpp \
325 common/crypto/rsa-asn1-decoder.cpp \
326 common/crypto/rsa-core.cpp \
327 common/crypto/rsa-init.cpp \
328 common/crypto/rsa-sanity.cpp \
329 common/crypto/pemfile.cpp \
330 common/crypto/pkcs7-asn1-decoder.cpp \
331 common/crypto/pkcs7-core.cpp \
332 common/crypto/pkcs7-init.cpp \
333 common/crypto/pkcs7-sanity.cpp \
334 common/crypto/pkcs7-verify.cpp \
335 common/crypto/pkix-signature-builtin.cpp \
336 common/crypto/pkix-signature-core.cpp \
337 common/crypto/pkix-signature-rsa.cpp \
338 common/crypto/pkix-util.cpp \
339 common/crypto/pkix-verify.cpp \
340 common/crypto/spc-asn1-decoder.cpp \
341 common/crypto/spc-core.cpp \
342 common/crypto/spc-init.cpp \
343 common/crypto/spc-sanity.cpp \
344 common/crypto/x509-asn1-decoder.cpp \
345 common/crypto/x509-certpaths.cpp \
346 common/crypto/x509-core.cpp \
347 common/crypto/x509-file.cpp \
348 common/crypto/x509-init.cpp \
349 common/crypto/x509-sanity.cpp \
350 common/crypto/x509-verify.cpp \
351 common/crypto/taf-asn1-decoder.cpp \
352 common/crypto/taf-core.cpp \
353 common/crypto/taf-init.cpp \
354 common/crypto/taf-sanity.cpp \
355 common/crypto/store.cpp \
356 common/crypto/store-inmem.cpp \
357 common/crypto/RTCrStoreCertAddFromFile.cpp \
358 common/dbg/dbg.cpp \
359 common/dbg/dbgas.cpp \
360 common/dbg/dbgcfg.cpp \
361 common/dbg/dbgmod.cpp \
362 common/dbg/dbgmodldr.cpp \
363 common/dbg/dbgmodcontainer.cpp \
364 common/dbg/dbgmoddeferred.cpp \
365 common/dbg/dbgmodexports.cpp \
366 common/dbg/dbgmodcodeview.cpp \
367 common/dbg/dbgmoddwarf.cpp \
368 common/dbg/dbgmodnm.cpp \
369 common/dvm/dvm.cpp \
370 common/dvm/dvmbsdlabel.cpp \
371 common/dvm/dvmgpt.cpp \
372 common/dvm/dvmmbr.cpp \
373 common/dvm/dvmvfs.cpp \
374 common/err/errinfo.cpp \
375 common/err/errinfo-alloc.cpp \
376 common/err/errmsg.cpp \
377 common/err/RTErrConvertFromErrno.cpp \
378 common/err/RTErrConvertToErrno.cpp \
379 common/filesystem/filesystem.cpp \
380 common/filesystem/filesystemext.cpp \
381 common/ldr/ldr.cpp \
382 common/ldr/ldrELF.cpp \
383 common/ldr/ldrEx.cpp \
384 common/ldr/ldrFile.cpp \
385 common/ldr/ldrMemory.cpp \
386 common/ldr/ldrNative.cpp \
387 common/ldr/ldrPE.cpp \
388 common/log/log.cpp \
389 common/log/logellipsis.cpp \
390 common/log/logrel.cpp \
391 common/log/logrelellipsis.cpp \
392 common/log/logcom.cpp \
393 common/log/logformat.cpp \
394 common/log/tracebuf.cpp \
395 common/log/tracedefault.cpp \
396 common/math/bignum.cpp \
397 common/misc/RTAssertMsg1Weak.cpp \
398 common/misc/RTAssertMsg2.cpp \
399 common/misc/RTAssertMsg2Add.cpp \
400 common/misc/RTAssertMsg2AddWeak.cpp \
401 common/misc/RTAssertMsg2AddWeakV.cpp \
402 common/misc/RTAssertMsg2Weak.cpp \
403 common/misc/RTAssertMsg2WeakV.cpp \
404 common/misc/RTFileModeToFlags.cpp \
405 common/misc/RTFileOpenF.cpp \
406 common/misc/RTFileOpenV.cpp \
407 common/misc/RTMemWipeThoroughly.cpp \
408 common/misc/assert.cpp \
409 common/misc/buildconfig.cpp \
410 common/misc/cidr.cpp \
411 common/misc/getopt.cpp \
412 common/misc/getoptargv.cpp \
413 common/misc/handle.cpp \
414 common/misc/handletable.cpp \
415 common/misc/handletablectx.cpp \
416 common/misc/handletablesimple.cpp \
417 common/misc/lockvalidator.cpp \
418 common/misc/message.cpp \
419 common/misc/once.cpp \
420 common/misc/req.cpp \
421 common/misc/reqpool.cpp \
422 common/misc/reqqueue.cpp \
423 common/misc/sanity-c.c \
424 common/misc/sanity-cpp.cpp \
425 common/misc/semspingpong.cpp \
426 common/misc/sg.cpp \
427 common/misc/circbuf.cpp \
428 common/misc/thread.cpp \
429 common/misc/term.cpp \
430 common/misc/uri.cpp \
431 common/net/netaddrstr2.cpp \
432 common/net/macstr.cpp \
433 common/path/rtPathRootSpecLen.cpp \
434 common/path/rtPathVolumeSpecLen.cpp \
435 common/path/RTPathAbsDup.cpp \
436 common/path/RTPathAbsEx.cpp \
437 common/path/RTPathAbsExDup.cpp \
438 common/path/RTPathAppend.cpp \
439 common/path/RTPathAppendEx.cpp \
440 common/path/RTPathCalcRelative.cpp \
441 common/path/RTPathChangeToDosSlashes.cpp \
442 common/path/RTPathChangeToUnixSlashes.cpp \
443 common/path/RTPathCopyComponents.cpp \
444 common/path/RTPathCountComponents.cpp \
445 common/path/RTPathExt.cpp \
446 common/path/RTPathFilename.cpp \
447 common/path/RTPathHasExt.cpp \
448 common/path/RTPathHasPath.cpp \
449 common/path/RTPathJoin.cpp \
450 common/path/RTPathJoinA.cpp \
451 common/path/RTPathJoinEx.cpp \
452 common/path/RTPathParse.cpp \
453 common/path/RTPathParsedReassemble.cpp \
454 common/path/RTPathParseSimple.cpp \
455 common/path/RTPathRealDup.cpp \
456 common/path/RTPathRmCmd.cpp \
457 common/path/RTPathSplit.cpp \
458 common/path/RTPathSplitA.cpp \
459 common/path/RTPathSplitReassemble.cpp \
460 common/path/RTPathStartsWithRoot.cpp \
461 common/path/RTPathStripExt.cpp \
462 common/path/RTPathStripFilename.cpp \
463 common/path/RTPathStripTrailingSlash.cpp \
464 common/path/RTPathTraverseList.cpp \
465 common/path/comparepaths.cpp \
466 common/rand/rand.cpp \
467 common/rand/randadv.cpp \
468 common/rand/randparkmiller.cpp \
469 common/sort/RTSortIsSorted.cpp \
470 common/sort/RTSortApvIsSorted.cpp \
471 common/sort/shellsort.cpp \
472 common/string/RTStrCat.cpp \
473 common/string/RTStrCatEx.cpp \
474 common/string/RTStrCatP.cpp \
475 common/string/RTStrCatPEx.cpp \
476 common/string/RTStrCmp.cpp \
477 common/string/RTStrCopy.cpp \
478 common/string/RTStrCopyEx.cpp \
479 common/string/RTStrCopyP.cpp \
480 common/string/RTStrCopyPEx.cpp \
481 common/string/RTStrNCmp.cpp \
482 common/string/RTStrNLen.cpp \
483 common/string/RTStrNLenEx.cpp \
484 common/string/RTStrPrintHexBytes.cpp \
485 common/string/RTStrStr.cpp \
486 common/string/RTUtf16Copy.cpp \
487 common/string/RTUtf16CopyAscii.cpp \
488 common/string/RTUtf16Cat.cpp \
489 common/string/RTUtf16CatAscii.cpp \
490 common/string/RTUtf16CmpAscii.cpp \
491 common/string/RTUtf16ICmpAscii.cpp \
492 common/string/RTUtf16End.cpp \
493 common/string/RTUtf16NLen.cpp \
494 common/string/RTUtf16NLenEx.cpp \
495 common/string/RTUtf16PrintHexBytes.cpp \
496 common/string/base64.cpp \
497 common/string/simplepattern.cpp \
498 common/string/straprintf.cpp \
499 common/string/strformat.cpp \
500 common/string/strformatnum.cpp \
501 common/string/strformatrt.cpp \
502 common/string/strformattype.cpp \
503 common/string/strhash1.cpp \
504 common/string/stringalloc.cpp \
505 common/string/strprintf.cpp \
506 common/string/strcache.cpp \
507 common/string/strspace.cpp \
508 common/string/strstrip.cpp \
509 common/string/strtonum.cpp \
510 common/string/strversion.cpp \
511 common/string/uni.cpp \
512 common/string/unidata-flags.cpp \
513 common/string/unidata-lower.cpp \
514 common/string/unidata-upper.cpp \
515 common/string/utf-16.cpp \
516 common/string/utf-16-case.cpp \
517 common/string/utf-16-latin-1.cpp \
518 common/string/utf-8.cpp \
519 common/string/utf-8-case.cpp \
520 common/string/utf-8-case2.cpp \
521 common/string/ministring.cpp \
522 common/table/avlgcptr.cpp \
523 common/table/avlhcphys.cpp \
524 common/table/avlgcphys.cpp \
525 common/table/avllu32.cpp \
526 common/table/avlou32.cpp \
527 common/table/avlogcphys.cpp \
528 common/table/avlogcptr.cpp \
529 common/table/avlohcphys.cpp \
530 common/table/avloioport.cpp \
531 common/table/avlpv.cpp \
532 common/table/avlrgcptr.cpp \
533 common/table/avlrogcphys.cpp \
534 common/table/avlrogcptr.cpp \
535 common/table/avlroioport.cpp \
536 common/table/avlroogcptr.cpp \
537 common/table/avlrpv.cpp \
538 common/table/avlruintptr.cpp \
539 common/table/avlrfoff.cpp \
540 common/table/avlru64.cpp \
541 common/table/avlu32.cpp \
542 common/table/avluintptr.cpp \
543 common/table/avlul.cpp \
544 common/table/table.cpp \
545 common/time/time.cpp \
546 common/time/timeprog.cpp \
547 common/time/timesup.cpp \
548 common/vfs/vfsbase.cpp \
549 common/vfs/vfschain.cpp \
550 common/vfs/vfsiosmisc.cpp \
551 common/vfs/vfsmemory.cpp \
552 common/vfs/vfsmisc.cpp \
553 common/vfs/vfsstdfile.cpp \
554 common/zip/tar.cpp \
555 common/zip/tarcmd.cpp \
556 common/zip/unzipcmd.cpp \
557 common/zip/tarvfs.cpp \
558 common/zip/gzipvfs.cpp \
559 common/zip/pkzip.cpp \
560 common/zip/pkzipvfs.cpp \
561 common/zip/zip.cpp \
562 generic/createtemp-generic.cpp \
563 generic/critsect-generic.cpp \
564 generic/critsectrw-generic.cpp \
565 generic/env-generic.cpp \
566 generic/RTDirCreateUniqueNumbered-generic.cpp \
567 generic/RTEnvDupEx-generic.cpp \
568 generic/RTFileCopy-generic.cpp \
569 generic/RTFileQuerySize-generic.cpp \
570 generic/RTFileReadAll-generic.cpp \
571 generic/RTFileReadAllEx-generic.cpp \
572 generic/RTFileReadAllByHandle-generic.cpp \
573 generic/RTFileReadAllByHandleEx-generic.cpp \
574 generic/RTFileReadAllFree-generic.cpp \
575 generic/RTLogWriteStdErr-generic.cpp \
576 generic/RTLogWriteStdOut-generic.cpp \
577 generic/RTLogWriteUser-generic.cpp \
578 generic/RTPathIsSame-generic.cpp \
579 generic/RTProcessQueryUsernameA-generic.cpp \
580 generic/RTTimerLRCreate-generic.cpp \
581 generic/mempool-generic.cpp \
582 generic/memsafer-generic.cpp \
583 generic/semfastmutex-generic.cpp \
584 generic/semxroads-generic.cpp \
585 generic/spinlock-generic.cpp \
586 generic/timerlr-generic.cpp \
587 r3/alloc-ef.cpp \
588 r3/alloc.cpp \
589 r3/allocex.cpp \
590 r3/dir.cpp \
591 r3/dir2.cpp \
592 r3/fileio.cpp \
593 r3/fs.cpp \
594 r3/init.cpp \
595 r3/isofs.cpp \
596 r3/path.cpp \
597 r3/poll.cpp \
598 r3/process.cpp \
599 r3/socket.cpp \
600 r3/stream.cpp \
601 r3/test.cpp \
602 r3/testi.cpp \
603 r3/tcp.cpp \
604 r3/udp.cpp \
605 r3/generic/semspinmutex-r3-generic.cpp \
606 r3/xml.cpp \
607 common/zip/xarvfs.cpp
608
609
610#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
611# RuntimeR3_SOURCES += common/time/timesupA.asm
612#else
613 RuntimeR3_SOURCES += common/time/timesupref.cpp
614#endif
615
616RuntimeR3_SOURCES.x86 += \
617 generic/RTMpGetDescription-generic.cpp
618RuntimeR3_SOURCES.amd64 += \
619 generic/RTMpGetDescription-generic.cpp
620RuntimeR3_SOURCES.sparc32 += \
621 generic/RTMpGetDescription-generic-stub.cpp \
622 common/asm/asm-fake.cpp
623RuntimeR3_SOURCES.sparc64 += \
624 generic/RTMpGetDescription-generic-stub.cpp \
625 common/asm/asm-fake.cpp
626
627ifdef IPRT_WITH_LZJB
628 RuntimeR3_SOURCES += common/misc/lzjb.c
629endif
630
631# AMD64 / x86 assembly code.
632RuntimeR3_SOURCES.x86 += \
633 common/asm/ASMCpuIdExSlow.asm \
634 common/asm/ASMAtomicUoAndU64.asm \
635 common/asm/ASMAtomicUoAndU32.asm \
636 common/asm/ASMAtomicUoOrU64.asm \
637 common/asm/ASMAtomicUoOrU32.asm \
638 common/asm/ASMRdMsrEx.asm \
639 common/asm/ASMWrMsrEx.asm
640RuntimeR3_SOURCES.amd64 += \
641 common/asm/ASMCpuIdExSlow.asm \
642 common/asm/ASMAtomicUoAndU64.asm \
643 common/asm/ASMAtomicUoAndU32.asm \
644 common/asm/ASMAtomicUoOrU64.asm \
645 common/asm/ASMAtomicUoOrU32.asm \
646 common/asm/ASMRdMsrEx.asm \
647 common/asm/ASMWrMsrEx.asm
648
649# Some versions of GCC might require this.
650RuntimeR3_SOURCES.x86 += \
651 common/asm/ASMAtomicXchgU64.asm \
652 common/asm/ASMAtomicCmpXchgU64.asm \
653 common/asm/ASMAtomicCmpXchgExU64.asm \
654 common/asm/ASMAtomicReadU64.asm \
655 common/asm/ASMAtomicUoReadU64.asm
656
657
658ifdef IPRT_WITH_KSTUFF
659 RuntimeR3_SOURCES += \
660 common/ldr/ldrkStuff.cpp
661endif
662
663# VBox specific stuff.
664RuntimeR3_SOURCES += \
665 VBox/RTAssertShouldPanic-vbox.cpp \
666 VBox/log-vbox.cpp
667ifneq ($(KBUILD_TARGET),win)
668RuntimeR3_SOURCES += \
669 common/err/errmsgxpcom.cpp
670endif
671if1of ($(KBUILD_TARGET),freebsd linux netbsd openbsd solaris)
672RuntimeR3_SOURCES += \
673 $(if $(VBOX_WITH_DBUS),VBox/dbus.cpp,)
674endif
675
676VBOX_WITH_NT_DIRENUM = 1
677RuntimeR3_SOURCES.win = \
678 common/dbg/dbgmoddbghelp.cpp \
679 generic/cdrom-generic.cpp \
680 generic/RTDirExists-generic.cpp \
681 generic/RTDirQueryInfo-generic.cpp \
682 generic/RTDirSetTimes-generic.cpp \
683 generic/RTFileExists-generic.cpp \
684 generic/RTMpGetCurFrequency-generic.cpp \
685 generic/RTMpGetMaxFrequency-generic.cpp \
686 generic/RTRandAdvCreateSystemFaster-generic.cpp \
687 generic/RTRandAdvCreateSystemTruer-generic.cpp \
688 generic/RTSemEventWait-generic.cpp \
689 generic/RTSemEventMultiWait-2-ex-generic.cpp \
690 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
691 generic/RTSemMutexRequest-generic.cpp \
692 generic/RTSemMutexRequestDebug-generic.cpp \
693 generic/RTThreadSetAffinityToCpu-generic.cpp \
694 generic/mppresent-generic.cpp \
695 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
696 generic/uuid-generic.cpp \
697 generic/RTProcDaemonize-generic.cpp \
698 generic/RTProcIsRunningByName-generic.cpp \
699 generic/RTThreadGetNativeState-generic.cpp \
700 nt/RTErrConvertFromNtStatus.cpp \
701 r3/nt/fs-nt.cpp \
702 r3/nt/pathint-nt.cpp \
703 r3/nt/RTProcQueryParent-r3-nt.cpp \
704 r3/win/env-win.cpp \
705 r3/win/RTHandleGetStandard-win.cpp \
706 r3/win/RTSystemQueryOSInfo-win.cpp \
707 r3/win/RTSystemShutdown-win.cpp \
708 r3/win/RTSystemQueryDmiString-win.cpp \
709 r3/win/RTSystemQueryTotalRam-win.cpp \
710 r3/win/alloc-win.cpp \
711 r3/win/allocex-win.cpp \
712 r3/win/dir-win.cpp \
713 $(if-expr defined(VBOX_WITH_NT_DIRENUM),r3/nt/direnum-r3-nt.cpp,r3/win/direnum-win.cpp) \
714 r3/win/errvars-win.cpp \
715 r3/win/fileio-win.cpp \
716 r3/win/init-win.cpp \
717 r3/win/ldrNative-win.cpp \
718 r3/win/localipc-win.cpp \
719 r3/win/mp-win.cpp \
720 r3/win/path-win.cpp \
721 r3/win/pipe-win.cpp \
722 r3/win/process-win.cpp \
723 r3/win/RTLogWriteDebugger-win.cpp \
724 r3/win/rtProcInitExePath-win.cpp \
725 r3/win/sched-win.cpp \
726 r3/win/semevent-win.cpp \
727 r3/win/semeventmulti-win.cpp \
728 r3/win/semmutex-win.cpp \
729 r3/win/symlink-win.cpp \
730 r3/win/rtFileNativeSetAttributes-win.cpp \
731 r3/win/rtmemlocked-win.cpp \
732 r3/win/thread-win.cpp \
733 r3/win/thread2-win.cpp \
734 r3/win/time-win.cpp \
735 r3/win/timer-win.cpp \
736 r3/win/tls-win.cpp \
737 r3/win/utf16locale-win.cpp \
738 r3/win/utf8-win.cpp \
739 r3/win/RTUuidCreate-win.cpp \
740 win/errmsgwin.cpp \
741 win/RTErrConvertFromWin32.cpp \
742 common/string/mempcpy.asm
743
744RuntimeR3_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
745RuntimeR3_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
746
747RuntimeR3_SOURCES.linux = \
748 generic/cdrom-generic.cpp \
749 generic/RTDirQueryInfo-generic.cpp \
750 generic/RTDirSetTimes-generic.cpp \
751 generic/RTFileMove-generic.cpp \
752 generic/RTLogWriteDebugger-generic.cpp \
753 generic/RTProcDaemonize-generic.cpp \
754 generic/RTSemEventMultiWait-2-ex-generic.cpp \
755 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
756 generic/RTTimeLocalNow-generic.cpp \
757 generic/RTTimerCreate-generic.cpp \
758 generic/RTThreadSetAffinityToCpu-generic.cpp \
759 generic/RTUuidCreate-generic.cpp \
760 generic/mppresent-generic.cpp \
761 generic/utf16locale-generic.cpp \
762 generic/uuid-generic.cpp \
763 r3/posix/allocex-r3-posix.cpp \
764 r3/linux/RTThreadGetNativeState-linux.cpp \
765 r3/linux/mp-linux.cpp \
766 r3/linux/rtProcInitExePath-linux.cpp \
767 r3/linux/sched-linux.cpp \
768 r3/linux/sysfs.cpp \
769 r3/linux/time-linux.cpp \
770 r3/linux/thread-affinity-linux.cpp \
771 r3/linux/RTProcIsRunningByName-linux.cpp \
772 r3/linux/RTSystemQueryDmiString-linux.cpp \
773 r3/linux/RTSystemShutdown-linux.cpp \
774 r3/posix/RTFileQueryFsSizes-posix.cpp \
775 r3/posix/RTHandleGetStandard-posix.cpp \
776 r3/posix/RTMemProtect-posix.cpp \
777 r3/posix/RTPathUserHome-posix.cpp \
778 r3/posix/RTSystemQueryOSInfo-posix.cpp \
779 r3/linux/systemmem-linux.cpp \
780 r3/posix/RTTimeNow-posix.cpp \
781 r3/posix/RTTimeSet-posix.cpp \
782 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
783 r3/posix/rtmemlocked-posix.cpp \
784 r3/posix/dir-posix.cpp \
785 r3/posix/env-posix.cpp \
786 r3/posix/errvars-posix.cpp \
787 r3/posix/fileio-posix.cpp \
788 r3/posix/fileio2-posix.cpp \
789 r3/posix/filelock-posix.cpp \
790 r3/posix/fs-posix.cpp \
791 r3/posix/fs2-posix.cpp \
792 r3/posix/fs3-posix.cpp \
793 r3/posix/ldrNative-posix.cpp \
794 r3/posix/path-posix.cpp \
795 r3/posix/path2-posix.cpp \
796 r3/posix/pathhost-posix.cpp \
797 r3/posix/RTPathUserDocuments-posix.cpp \
798 r3/posix/pipe-posix.cpp \
799 r3/posix/process-posix.cpp \
800 r3/posix/process-creation-posix.cpp \
801 r3/posix/rand-posix.cpp \
802 r3/posix/semrw-posix.cpp \
803 r3/posix/symlink-posix.cpp \
804 r3/posix/thread-posix.cpp \
805 r3/posix/thread2-posix.cpp \
806 r3/posix/timelocal-posix.cpp \
807 r3/posix/timer-posix.cpp \
808 r3/posix/tls-posix.cpp \
809 r3/posix/utf8-posix.cpp
810ifdef IPRT_WITH_FUTEX_BASED_SEMS
811 RuntimeR3_SOURCES.linux += \
812 r3/linux/semevent-linux.cpp \
813 r3/linux/semeventmulti-linux.cpp \
814 r3/linux/semmutex-linux.cpp
815else
816 RuntimeR3_SOURCES.linux.x86 += \
817 r3/posix/semevent-posix.cpp \
818 r3/posix/semeventmulti-posix.cpp \
819 r3/posix/semmutex-posix.cpp
820 RuntimeR3_SOURCES.linux.amd64 += \
821 r3/linux/semevent-linux.cpp \
822 r3/linux/semeventmulti-linux.cpp
823 ifdef RT_NEW_LINUX_MUTEX_CODE
824 RuntimeR3_SOURCES.linux.amd64 += \
825 r3/linux/semmutex-linux.cpp
826 else
827 RuntimeR3_SOURCES.linux.amd64 += \
828 r3/posix/semmutex-posix.cpp
829 endif
830endif
831
832RuntimeR3_SOURCES.os2 = \
833 generic/cdrom-generic.cpp \
834 generic/RTDirQueryInfo-generic.cpp \
835 generic/RTDirSetTimes-generic.cpp \
836 generic/RTFileMove-generic.cpp \
837 generic/RTLogWriteDebugger-generic.cpp \
838 generic/RTProcDaemonize-generic.cpp \
839 generic/RTRandAdvCreateSystemFaster-generic.cpp \
840 generic/RTRandAdvCreateSystemTruer-generic.cpp \
841 generic/RTSystemQueryDmiString-generic.cpp \
842 generic/RTSystemShutdown-generic.cpp \
843 generic/RTTimeLocalNow-generic.cpp \
844 generic/RTTimerCreate-generic.cpp \
845 generic/RTThreadSetAffinityToCpu-generic.cpp \
846 generic/RTUuidCreate-generic.cpp \
847 generic/mppresent-generic.cpp \
848 generic/RTSemEventWait-generic.cpp \
849 generic/RTSemEventMultiWait-generic.cpp \
850 generic/RTSemMutexRequest-generic.cpp \
851 generic/RTSemMutexRequestDebug-generic.cpp \
852 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
853 generic/timer-generic.cpp \
854 generic/utf16locale-generic.cpp \
855 generic/uuid-generic.cpp \
856 generic/RTMpGetCoreCount-generic.cpp \
857 generic/RTMpGetOnlineCoreCount-generic.cpp \
858 generic/RTMpGetCurFrequency-generic.cpp \
859 generic/RTMpGetMaxFrequency-generic.cpp \
860 generic/RTProcIsRunningByName-generic.cpp \
861 generic/RTThreadGetNativeState-generic.cpp \
862 os2/RTErrConvertFromOS2.cpp \
863 r3/generic/allocex-r3-generic.cpp \
864 r3/os2/filelock-os2.cpp \
865 r3/os2/mp-os2.cpp \
866 r3/os2/pipe-os2.cpp \
867 r3/os2/rtProcInitExePath-os2.cpp \
868 r3/os2/sched-os2.cpp \
869 r3/os2/sems-os2.cpp \
870 r3/os2/systemmem-os2.cpp \
871 r3/os2/thread-os2.cpp \
872 r3/os2/time-os2.cpp \
873 r3/posix/RTFileQueryFsSizes-posix.cpp \
874 r3/posix/RTHandleGetStandard-posix.cpp \
875 r3/posix/RTMemProtect-posix.cpp \
876 r3/posix/RTPathUserHome-posix.cpp \
877 r3/posix/RTSystemQueryOSInfo-posix.cpp \
878 r3/posix/RTTimeNow-posix.cpp \
879 r3/posix/RTTimeSet-posix.cpp \
880 r3/posix/dir-posix.cpp \
881 r3/posix/env-posix.cpp \
882 r3/posix/errvars-posix.cpp \
883 r3/posix/fileio-posix.cpp \
884 r3/posix/fileio2-posix.cpp \
885 r3/posix/fs-posix.cpp \
886 r3/posix/fs2-posix.cpp \
887 r3/posix/fs3-posix.cpp \
888 r3/posix/ldrNative-posix.cpp \
889 r3/posix/path-posix.cpp \
890 r3/posix/path2-posix.cpp \
891 r3/posix/pathhost-posix.cpp \
892 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
893 r3/posix/RTPathUserDocuments-posix.cpp \
894 r3/posix/process-posix.cpp \
895 r3/posix/process-creation-posix.cpp \
896 r3/posix/symlink-posix.cpp \
897 r3/posix/timelocal-posix.cpp \
898 r3/posix/utf8-posix.cpp
899
900RuntimeR3_SOURCES.darwin = \
901 darwin/RTErrConvertFromDarwin.cpp \
902 darwin/RTErrConvertFromDarwinCOM.cpp \
903 darwin/RTErrConvertFromDarwinIO.cpp \
904 darwin/RTErrConvertFromDarwinKern.cpp \
905 generic/cdrom-generic.cpp \
906 generic/RTDirQueryInfo-generic.cpp \
907 generic/RTDirSetTimes-generic.cpp \
908 generic/RTFileMove-generic.cpp \
909 generic/RTLogWriteDebugger-generic.cpp \
910 generic/RTProcDaemonize-generic.cpp \
911 generic/RTThreadGetAffinity-stub-generic.cpp \
912 generic/RTThreadSetAffinity-stub-generic.cpp \
913 generic/RTThreadSetAffinityToCpu-generic.cpp \
914 generic/RTTimeLocalNow-generic.cpp \
915 generic/RTTimerCreate-generic.cpp \
916 generic/RTUuidCreate-generic.cpp \
917 generic/mppresent-generic.cpp \
918 generic/RTMpGetOnlineCoreCount-generic.cpp \
919 generic/RTSemEventMultiWait-2-ex-generic.cpp \
920 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
921 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
922 generic/RTSystemShutdown-generic.cpp \
923 generic/timer-generic.cpp \
924 generic/utf16locale-generic.cpp \
925 generic/uuid-generic.cpp\
926 generic/RTProcIsRunningByName-generic.cpp \
927 generic/RTThreadGetNativeState-generic.cpp \
928 r3/darwin/filelock-darwin.cpp \
929 r3/darwin/mp-darwin.cpp \
930 r3/darwin/pathhost-darwin.cpp \
931 r3/darwin/rtProcInitExePath-darwin.cpp \
932 r3/darwin/RTSystemQueryDmiString-darwin.cpp \
933 r3/darwin/sched-darwin.cpp \
934 r3/darwin/systemmem-darwin.cpp \
935 r3/darwin/time-darwin.cpp \
936 r3/darwin/RTPathUserDocuments-darwin.cpp \
937 r3/generic/allocex-r3-generic.cpp \
938 r3/posix/RTFileQueryFsSizes-posix.cpp \
939 r3/posix/RTHandleGetStandard-posix.cpp \
940 r3/posix/RTMemProtect-posix.cpp \
941 r3/posix/RTPathUserHome-posix.cpp \
942 r3/posix/RTSystemQueryOSInfo-posix.cpp \
943 r3/posix/RTTimeSet-posix.cpp \
944 r3/posix/dir-posix.cpp \
945 r3/posix/env-posix.cpp \
946 r3/posix/errvars-posix.cpp \
947 r3/posix/fileio-posix.cpp \
948 r3/posix/fileio2-posix.cpp \
949 r3/posix/fs-posix.cpp \
950 r3/posix/fs2-posix.cpp \
951 r3/posix/fs3-posix.cpp \
952 r3/posix/ldrNative-posix.cpp \
953 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
954 r3/posix/rtmemlocked-posix.cpp \
955 r3/posix/path-posix.cpp \
956 r3/posix/path2-posix.cpp \
957 r3/posix/pipe-posix.cpp \
958 r3/posix/process-posix.cpp \
959 r3/posix/process-creation-posix.cpp \
960 r3/posix/rand-posix.cpp \
961 r3/posix/semevent-posix.cpp \
962 r3/posix/semeventmulti-posix.cpp \
963 r3/posix/semmutex-posix.cpp \
964 r3/posix/symlink-posix.cpp \
965 r3/posix/thread-posix.cpp \
966 r3/posix/thread2-posix.cpp \
967 r3/posix/timelocal-posix.cpp \
968 r3/posix/tls-posix.cpp \
969 r3/posix/utf8-posix.cpp
970
971## @todo Make BSD sched, implement RTMP*.
972RuntimeR3_SOURCES.freebsd = \
973 generic/cdrom-generic.cpp \
974 generic/RTDirQueryInfo-generic.cpp \
975 generic/RTDirSetTimes-generic.cpp \
976 generic/RTFileMove-generic.cpp \
977 generic/RTLogWriteDebugger-generic.cpp \
978 generic/RTSemEventMultiWait-2-ex-generic.cpp \
979 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
980 generic/RTSystemQueryDmiString-generic.cpp \
981 generic/RTSystemShutdown-generic.cpp \
982 generic/RTThreadGetAffinity-stub-generic.cpp \
983 generic/RTThreadSetAffinity-stub-generic.cpp \
984 generic/RTThreadSetAffinityToCpu-generic.cpp \
985 generic/RTTimeLocalNow-generic.cpp \
986 generic/RTTimerCreate-generic.cpp \
987 generic/RTUuidCreate-generic.cpp \
988 generic/mppresent-generic.cpp \
989 generic/sched-generic.cpp \
990 generic/utf16locale-generic.cpp \
991 generic/uuid-generic.cpp \
992 generic/RTMpCpuId-generic.cpp \
993 generic/RTMpGetCoreCount-generic.cpp \
994 generic/RTMpGetOnlineCoreCount-generic.cpp \
995 generic/RTProcDaemonize-generic.cpp \
996 generic/RTProcIsRunningByName-generic.cpp \
997 generic/RTThreadGetNativeState-generic.cpp \
998 r3/freebsd/mp-freebsd.cpp \
999 r3/freebsd/rtProcInitExePath-freebsd.cpp \
1000 r3/generic/allocex-r3-generic.cpp \
1001 r3/posix/RTFileQueryFsSizes-posix.cpp \
1002 r3/posix/RTHandleGetStandard-posix.cpp \
1003 r3/posix/RTMemProtect-posix.cpp \
1004 r3/posix/RTPathUserHome-posix.cpp \
1005 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1006 r3/posix/RTSystemQueryTotalRam-posix.cpp \
1007 r3/posix/RTTimeNow-posix.cpp \
1008 r3/posix/RTTimeSet-posix.cpp \
1009 r3/posix/dir-posix.cpp \
1010 r3/posix/env-posix.cpp \
1011 r3/posix/errvars-posix.cpp \
1012 r3/posix/fileio-posix.cpp \
1013 r3/posix/fileio2-posix.cpp \
1014 r3/posix/filelock-posix.cpp \
1015 r3/posix/fs-posix.cpp \
1016 r3/posix/fs2-posix.cpp \
1017 r3/posix/fs3-posix.cpp \
1018 r3/posix/ldrNative-posix.cpp \
1019 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1020 r3/posix/rtmemlocked-posix.cpp \
1021 r3/posix/path-posix.cpp \
1022 r3/posix/path2-posix.cpp \
1023 r3/posix/pathhost-posix.cpp \
1024 r3/posix/RTPathUserDocuments-posix.cpp \
1025 r3/posix/pipe-posix.cpp \
1026 r3/posix/process-posix.cpp \
1027 r3/posix/process-creation-posix.cpp \
1028 r3/posix/rand-posix.cpp \
1029 r3/posix/semevent-posix.cpp \
1030 r3/posix/semeventmulti-posix.cpp \
1031 r3/posix/semmutex-posix.cpp \
1032 r3/posix/semrw-posix.cpp \
1033 r3/posix/symlink-posix.cpp \
1034 r3/posix/thread-posix.cpp \
1035 r3/posix/thread2-posix.cpp \
1036 r3/posix/time-posix.cpp \
1037 r3/posix/timelocal-posix.cpp \
1038 r3/posix/timer-posix.cpp \
1039 r3/posix/tls-posix.cpp \
1040 r3/posix/utf8-posix.cpp
1041
1042RuntimeR3_SOURCES.solaris = \
1043 generic/cdrom-generic.cpp \
1044 generic/RTDirQueryInfo-generic.cpp \
1045 generic/RTDirSetTimes-generic.cpp \
1046 generic/RTFileMove-generic.cpp \
1047 generic/RTLogWriteDebugger-generic.cpp \
1048 generic/RTProcDaemonize-generic.cpp \
1049 generic/RTProcIsRunningByName-generic.cpp \
1050 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1051 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1052 generic/RTThreadSetAffinityToCpu-generic.cpp \
1053 generic/RTTimeLocalNow-generic.cpp \
1054 generic/RTTimerCreate-generic.cpp \
1055 generic/RTUuidCreate-generic.cpp \
1056 generic/sched-generic.cpp \
1057 generic/utf16locale-generic.cpp \
1058 generic/uuid-generic.cpp \
1059 generic/RTThreadGetNativeState-generic.cpp \
1060 r3/generic/allocex-r3-generic.cpp \
1061 r3/posix/RTFileQueryFsSizes-posix.cpp \
1062 r3/posix/RTHandleGetStandard-posix.cpp \
1063 r3/posix/RTMemProtect-posix.cpp \
1064 r3/posix/RTPathUserHome-posix.cpp \
1065 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1066 r3/posix/RTTimeNow-posix.cpp \
1067 r3/posix/RTTimeSet-posix.cpp \
1068 r3/posix/dir-posix.cpp \
1069 r3/posix/env-posix.cpp \
1070 r3/posix/errvars-posix.cpp \
1071 r3/posix/fileio-posix.cpp \
1072 r3/posix/fileio2-posix.cpp \
1073 r3/posix/filelock-posix.cpp \
1074 r3/posix/fs-posix.cpp \
1075 r3/posix/fs2-posix.cpp \
1076 r3/posix/fs3-posix.cpp \
1077 r3/posix/ldrNative-posix.cpp \
1078 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1079 r3/posix/rtmemlocked-posix.cpp \
1080 r3/posix/path-posix.cpp \
1081 r3/posix/path2-posix.cpp \
1082 r3/posix/pathhost-posix.cpp \
1083 r3/posix/RTPathUserDocuments-posix.cpp \
1084 r3/posix/pipe-posix.cpp \
1085 r3/posix/process-posix.cpp \
1086 r3/posix/process-creation-posix.cpp \
1087 r3/posix/rand-posix.cpp \
1088 r3/posix/semevent-posix.cpp \
1089 r3/posix/semeventmulti-posix.cpp \
1090 r3/posix/semmutex-posix.cpp \
1091 r3/posix/semrw-posix.cpp \
1092 r3/posix/symlink-posix.cpp \
1093 r3/posix/thread-posix.cpp \
1094 r3/posix/thread2-posix.cpp \
1095 r3/posix/time-posix.cpp \
1096 r3/posix/timelocal-posix.cpp \
1097 r3/posix/timer-posix.cpp \
1098 r3/posix/tls-posix.cpp \
1099 r3/posix/utf8-posix.cpp \
1100 r3/solaris/systemmem-solaris.cpp \
1101 r3/solaris/mp-solaris.cpp \
1102 r3/solaris/rtProcInitExePath-solaris.cpp \
1103 r3/solaris/RTSystemShutdown-solaris.cpp \
1104 r3/solaris/thread-affinity-solaris.cpp
1105RuntimeR3_SOURCES.solaris.amd64 = \
1106 r3/solaris/coredumper-solaris.cpp \
1107 r3/solaris/RTSystemQueryDmiString-solaris.cpp
1108RuntimeR3_SOURCES.solaris.x86 = \
1109 r3/solaris/coredumper-solaris.cpp \
1110 r3/solaris/RTSystemQueryDmiString-solaris.cpp
1111RuntimeR3_SOURCES.solaris.sparc32 = \
1112 generic/RTSystemQueryDmiString-generic.cpp
1113RuntimeR3_SOURCES.solaris.sparc64 = \
1114 generic/RTSystemQueryDmiString-generic.cpp
1115
1116RuntimeR3_SOURCES.haiku = \
1117 generic/RTDirQueryInfo-generic.cpp \
1118 generic/RTDirSetTimes-generic.cpp \
1119 generic/RTFileMove-generic.cpp \
1120 generic/RTLogWriteDebugger-generic.cpp \
1121 generic/RTProcDaemonize-generic.cpp \
1122 generic/RTTimeLocalNow-generic.cpp \
1123 generic/RTTimerCreate-generic.cpp \
1124 generic/RTUuidCreate-generic.cpp \
1125 generic/mppresent-generic.cpp \
1126 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1127 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1128 generic/sched-generic.cpp \
1129 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),ockless-,)generic.cpp \
1130 generic/timer-generic.cpp \
1131 generic/utf16locale-generic.cpp \
1132 generic/uuid-generic.cpp\
1133 generic/RTProcIsRunningByName-generic.cpp \
1134 generic/RTThreadGetNativeState-generic.cpp \
1135 generic/RTMpGetCoreCount-generic.cpp \
1136 generic/RTMpGetOnlineCoreCount-generic.cpp \
1137 r3/haiku/rtProcInitExePath-haiku.cpp \
1138 r3/haiku/time-haiku.cpp \
1139 r3/generic/allocex-r3-generic.cpp \
1140 r3/posix/RTFileQueryFsSizes-posix.cpp \
1141 r3/posix/RTHandleGetStandard-posix.cpp \
1142 r3/posix/RTMemProtect-posix.cpp \
1143 r3/posix/RTPathUserHome-posix.cpp \
1144 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1145 r3/posix/RTSystemQueryTotalRam-posix.cpp \
1146 r3/posix/RTTimeNow-posix.cpp \
1147 r3/posix/dir-posix.cpp \
1148 r3/posix/env-posix.cpp \
1149 r3/posix/errvars-posix.cpp \
1150 r3/posix/fileio-posix.cpp \
1151 r3/posix/fileio2-posix.cpp \
1152 r3/posix/filelock-posix.cpp \
1153 r3/posix/fs-posix.cpp \
1154 r3/posix/fs2-posix.cpp \
1155 r3/posix/fs3-posix.cpp \
1156 r3/posix/ldrNative-posix.cpp \
1157 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1158 r3/posix/rtmemlocked-posix.cpp \
1159 r3/posix/path-posix.cpp \
1160 r3/posix/path2-posix.cpp \
1161 r3/posix/pathhost-posix.cpp \
1162 r3/posix/pipe-posix.cpp \
1163 r3/posix/process-posix.cpp \
1164 r3/posix/process-creation-posix.cpp \
1165 r3/posix/rand-posix.cpp \
1166 r3/posix/semevent-posix.cpp \
1167 r3/posix/semeventmulti-posix.cpp \
1168 r3/posix/semmutex-posix.cpp \
1169 r3/posix/symlink-posix.cpp \
1170 r3/posix/thread-posix.cpp \
1171 r3/posix/thread2-posix.cpp \
1172 r3/posix/timelocal-posix.cpp \
1173 r3/posix/tls-posix.cpp \
1174 r3/posix/utf8-posix.cpp
1175
1176## PORTME: Porters add their selection of platform specific files for Ring-3 here.
1177
1178
1179#
1180# RuntimeBldProg - Static Runtime for build programs.
1181#
1182# Note! This is a bit of hacky since kBuild doesn't support building libraries
1183# for build programs.
1184#
1185RuntimeBldProg_TEMPLATE := VBoxAdvBldProg
1186RuntimeBldProg_EXTENDS := RuntimeR3
1187RuntimeBldProg_BLD_TRG := $(KBUILD_HOST)
1188RuntimeBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH)
1189RuntimeBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU)
1190RuntimeBldProg_DEFS := $(RuntimeR3_DEFS) IPRT_WITHOUT_LDR_VERIFY
1191RuntimeBldProg_SOURCES = $(filter-out \
1192 r3/xml.cpp \
1193 common/zip/xarvfs.cpp \
1194 , $(RuntimeR3_SOURCES))
1195
1196
1197
1198#
1199# RuntimeGuestR3 - Guest Additions Runtime (static/exe).
1200# (The KBUILD_HOST inheritance here is for cross building the linux
1201# additions, while .x86 is for cross building x86 while targeting amd64.)
1202#
1203RuntimeGuestR3_TEMPLATE := VBoxGuestR3Lib
1204## @todo change this to EXTEND the RuntimeR3 target.
1205RuntimeGuestR3_SDKS.win := $(RuntimeR3_SDKS.win)
1206RuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT RT_NO_GIP IPRT_WITH_OPENSSL, $(RuntimeR3_DEFS))
1207RuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
1208RuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
1209RuntimeGuestR3_INCS := $(RuntimeR3_INCS)
1210RuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1211RuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
1212RuntimeGuestR3_SOURCES := $(filter-out \
1213 common/time/timesupref.cpp \
1214 common/time/timesupA.asm \
1215 common/time/timesup.cpp \
1216 common/checksum/x509.cpp \
1217 generic/RTLogWriteUser-generic.cpp \
1218 r3/xml.cpp \
1219 common/zip/xarvfs.cpp \
1220 , $(RuntimeR3_SOURCES))
1221RuntimeGuestR3_SOURCES += \
1222 common/time/timesysalias.cpp \
1223 VBox/logbackdoor.cpp
1224RuntimeGuestR3_SOURCES.$(KBUILD_TARGET) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
1225RuntimeGuestR3_SOURCES.$(KBUILD_HOST) := $(RuntimeR3_SOURCES.$(KBUILD_HOST))
1226RuntimeGuestR3_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
1227RuntimeGuestR3_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
1228RuntimeGuestR3_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
1229RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1230RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
1231RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).amd64:= $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
1232RuntimeGuestR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH))
1233RuntimeGuestR3_SOURCES.win.x86 += \
1234 r3/win/vcc100-kernel32-fakes.cpp \
1235 r3/win/vcc100-kernel32-fakesA.asm
1236
1237#
1238# RuntimeGuestR3-x86 - Same as RuntimeGuestR3, except that it's targeting x86.
1239#
1240RuntimeGuestR3-x86_EXTENDS := RuntimeGuestR3
1241RuntimeGuestR3-x86_BLD_TRG_ARCH := x86
1242
1243
1244#
1245# RuntimeGuestR3Shared - Guest Additions Runtime (static/dll).
1246#
1247RuntimeGuestR3Shared_TEMPLATE := VBoxGuestR3Dll
1248RuntimeGuestR3Shared_EXTENDS := RuntimeGuestR3
1249RuntimeGuestR3Shared_INST = $(INST_ADDITIONS_LIB)
1250
1251
1252#
1253# RuntimeGuestR3Shared-x86 - Same as RuntimeGuestR3Shared, except that it's targeting x86.
1254#
1255RuntimeGuestR3Shared-x86_EXTENDS := RuntimeGuestR3Shared
1256RuntimeGuestR3Shared-x86_BLD_TRG_ARCH := x86
1257
1258
1259#
1260# RuntimeGuestR3Mini - Minimal Guest Additions Runtime which does not require
1261# initialization and can be linked into an .so. Intended
1262# for X11 drivers, GRADD and similar.
1263#
1264RuntimeGuestR3Mini_TEMPLATE := VBoxGuestR3Dll
1265## @todo change this to EXTEND the RuntimeGuestR3 target.
1266RuntimeGuestR3Mini_INST := $(INST_ADDITIONS_LIB)
1267RuntimeGuestR3Mini_SDKS.win := $(RuntimeR3_SDKS.win)
1268RuntimeGuestR3Mini_DEFS := \
1269 $(filter-out RTCRITSECT_STRICT RT_NO_GIP RT_WITH_ICONV_CACHE, $(RuntimeR3_DEFS)) \
1270 RT_MINI IN_RT_STATIC RTMEM_NO_WRAP_TO_EF_APIS
1271RuntimeGuestR3Mini_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
1272RuntimeGuestR3Mini_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
1273RuntimeGuestR3Mini_INCS := $(RuntimeR3_INCS)
1274RuntimeGuestR3Mini_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1275RuntimeGuestR3Mini_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
1276RuntimeGuestR3Mini_SOURCES = \
1277 common/alloc/alloc.cpp \
1278 common/err/errmsg.cpp \
1279 common/err/RTErrConvertFromErrno.cpp \
1280 common/log/logformat.cpp \
1281 common/misc/RTAssertMsg1Weak.cpp \
1282 common/misc/RTAssertMsg2.cpp \
1283 common/misc/RTAssertMsg2Add.cpp \
1284 common/misc/RTAssertMsg2AddWeak.cpp \
1285 common/misc/RTAssertMsg2AddWeakV.cpp \
1286 common/misc/RTAssertMsg2Weak.cpp \
1287 common/misc/RTAssertMsg2WeakV.cpp \
1288 common/misc/assert.cpp \
1289 common/misc/buildconfig.cpp \
1290 common/misc/sanity-c.c \
1291 common/misc/sanity-cpp.cpp \
1292 common/misc/sg.cpp \
1293 common/path/rtPathVolumeSpecLen.cpp \
1294 common/path/RTPathAbsDup.cpp \
1295 common/path/RTPathAbsEx.cpp \
1296 common/path/RTPathAbsExDup.cpp \
1297 common/path/RTPathAppend.cpp \
1298 common/path/RTPathAppendEx.cpp \
1299 common/path/RTPathExt.cpp \
1300 common/path/RTPathFilename.cpp \
1301 common/path/RTPathHasExt.cpp \
1302 common/path/RTPathHasPath.cpp \
1303 common/path/RTPathJoin.cpp \
1304 common/path/RTPathJoinA.cpp \
1305 common/path/RTPathParseSimple.cpp \
1306 common/path/RTPathRealDup.cpp \
1307 common/path/RTPathStripExt.cpp \
1308 common/path/RTPathStripFilename.cpp \
1309 common/path/RTPathStripTrailingSlash.cpp \
1310 common/string/RTStrCat.cpp \
1311 common/string/RTStrCatEx.cpp \
1312 common/string/RTStrCatP.cpp \
1313 common/string/RTStrCatPEx.cpp \
1314 common/string/RTStrCmp.cpp \
1315 common/string/RTStrCopy.cpp \
1316 common/string/RTStrCopyEx.cpp \
1317 common/string/RTStrCopyP.cpp \
1318 common/string/RTStrCopyPEx.cpp \
1319 common/string/RTStrNCmp.cpp \
1320 common/string/RTStrNLen.cpp \
1321 common/string/RTStrNLenEx.cpp \
1322 common/string/RTStrStr.cpp \
1323 common/string/straprintf.cpp \
1324 common/string/strformat.cpp \
1325 common/string/strformatnum.cpp \
1326 common/string/strformatrt.cpp \
1327 common/string/strformattype.cpp \
1328 common/string/stringalloc.cpp \
1329 common/string/strprintf.cpp \
1330 common/string/strtonum.cpp \
1331 common/string/unidata-flags.cpp \
1332 common/string/unidata-lower.cpp \
1333 common/string/unidata-upper.cpp \
1334 common/string/utf-8.cpp \
1335 common/string/utf-8-case.cpp \
1336 common/string/utf-8-case2.cpp \
1337 common/string/utf-16.cpp \
1338 common/string/utf-16-case.cpp \
1339 common/string/utf-16-latin-1.cpp \
1340 common/table/avlpv.cpp \
1341 generic/critsect-generic.cpp \
1342 generic/pathhost-generic.cpp \
1343 generic/RTAssertShouldPanic-generic.cpp \
1344 generic/errvars-generic.cpp \
1345 r3/alloc.cpp \
1346 r3/alloc-ef.cpp \
1347 r3/fileio.cpp \
1348 r3/fs.cpp
1349RuntimeGuestR3Mini_SOURCES.freebsd = \
1350 r3/posix/RTMemProtect-posix.cpp \
1351 r3/posix/rtmempage-exec-mmap-posix.cpp \
1352 r3/posix/RTPathUserHome-posix.cpp \
1353 r3/posix/env-posix.cpp \
1354 r3/posix/fileio-posix.cpp \
1355 r3/posix/fileio2-posix.cpp \
1356 r3/posix/path-posix.cpp \
1357 r3/posix/path2-posix.cpp \
1358 r3/posix/utf8-posix.cpp \
1359 r3/posix/thread2-posix.cpp \
1360 common/err/errmsgxpcom.cpp
1361RuntimeGuestR3Mini_SOURCES.linux = \
1362 r3/posix/RTMemProtect-posix.cpp \
1363 r3/posix/rtmempage-exec-mmap-posix.cpp \
1364 r3/posix/RTPathUserHome-posix.cpp \
1365 r3/posix/env-posix.cpp \
1366 r3/posix/fileio-posix.cpp \
1367 r3/posix/fileio2-posix.cpp \
1368 r3/posix/path-posix.cpp \
1369 r3/posix/path2-posix.cpp \
1370 r3/posix/utf8-posix.cpp \
1371 r3/posix/thread2-posix.cpp \
1372 common/err/errmsgxpcom.cpp
1373RuntimeGuestR3Mini_SOURCES.solaris = \
1374 r3/posix/RTMemProtect-posix.cpp \
1375 r3/posix/rtmempage-exec-mmap-posix.cpp \
1376 r3/posix/RTPathUserHome-posix.cpp \
1377 r3/posix/env-posix.cpp \
1378 r3/posix/fileio-posix.cpp \
1379 r3/posix/fileio2-posix.cpp \
1380 r3/posix/path-posix.cpp \
1381 r3/posix/path2-posix.cpp \
1382 r3/posix/utf8-posix.cpp \
1383 r3/posix/thread2-posix.cpp \
1384 common/err/errmsgxpcom.cpp
1385RuntimeGuestR3Mini_SOURCES.win = \
1386 r3/win/alloc-win.cpp \
1387 r3/win/fileio-win.cpp \
1388 r3/win/path-win.cpp \
1389 r3/win/utf8-win.cpp \
1390 r3/win/thread2-win.cpp \
1391 win/errmsgwin.cpp \
1392 win/RTErrConvertFromWin32.cpp
1393
1394# VBox specific stuff.
1395RuntimeGuestR3Mini_SOURCES += \
1396 VBox/logbackdoor.cpp \
1397 VBox/logbackdoor-redirect.cpp
1398
1399
1400#
1401# VBoxRT - Shared Object / DLL version.
1402#
1403VBoxRT_TEMPLATE = VBoxR3DllNoPic
1404VBoxRT_SDKS = VBOX_LIBXML2
1405ifdef VBOX_WITH_LIBCURL
1406 VBoxRT_SDKS += VBOX_LIBCURL
1407endif
1408VBoxRT_SDKS += VBOX_OPENSSL
1409VBoxRT_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
1410if1of ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING), darwin win$(VBOX_WITH_HARDENING))
1411VBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
1412endif
1413VBoxRT_DEFS := $(filter-out RT_NO_GIP,$(RuntimeR3_DEFS)) IN_SUP_R3 IN_SUP_R3 IPRT_WITH_XAR
1414ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1415 VBoxRT_DEFS += RT_NO_GIP
1416endif
1417ifdef VBOX_WITH_LIBCURL
1418 VBoxRT_DEFS += IPRT_WITH_HTTP
1419endif
1420VBoxRT_DEFS.$(KBUILD_TYPE) := $(RuntimeR3_DEFS.$(KBUILD_TYPE))
1421VBoxRT_SOURCES := \
1422 VBox/VBoxRTDeps.cpp \
1423 $(filter-out common/checksum/crc32.cpp, \
1424 $(patsubst common/checksum/alt-%,common/checksum/openssl-%,$(RuntimeR3_SOURCES))) \
1425 common/checksum/crc32-zlib.cpp \
1426 common/misc/aiomgr.cpp
1427ifdef VBOX_WITH_LIBCURL
1428 VBoxRT_SOURCES += common/misc/s3.cpp
1429 VBoxRT_SOURCES += common/misc/http.cpp
1430endif
1431VBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
1432VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1433VBoxRT_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
1434VBoxRT_SOURCES.$(KBUILD_TARGET).amd64 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
1435VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
1436VBoxRT_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
1437VBoxRT_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
1438VBoxRT_SOURCES.win += \
1439 r3/win/dllmain-win.cpp \
1440 r3/win/fileaio-win.cpp \
1441 $(VBoxRT_0_OUTDIR)/VBoxRT.def
1442VBoxRT_SOURCES.linux += \
1443 r3/linux/fileaio-linux.cpp
1444VBoxRT_SOURCES.solaris += \
1445 r3/solaris/fileaio-solaris.cpp
1446VBoxRT_SOURCES.darwin += \
1447 r3/posix/fileaio-posix.cpp
1448VBoxRT_SOURCES.freebsd += \
1449 r3/freebsd/fileaio-freebsd.cpp
1450VBoxRT_INCS := $(RuntimeR3_INCS)
1451VBoxRT_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1452VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1453VBoxRT_LIBS = \
1454 $(PATH_STAGE_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
1455if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1456VBoxRT_LIBS += \
1457 $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB)
1458endif
1459ifdef IPRT_WITH_KSTUFF
1460 VBoxRT_LIBS += \
1461 $(PATH_STAGE_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
1462endif
1463ifndef SDK_VBOX_LIBXML2_LIBS
1464 VBoxRT_LIBS += \
1465 $(PATH_STAGE_LIB)/VBox-libxml2$(VBOX_SUFF_LIB)
1466endif
1467VBoxRT_LIBS += \
1468 $(SDK_VBOX_ZLIB_LIBS)
1469ifndef SDK_VBOX_OPENSSL_LIBS
1470 VBoxRT_LIBS += \
1471 $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) \
1472 $(PATH_STAGE_LIB)/VBox-libssl$(VBOX_SUFF_LIB)
1473endif
1474ifdef IPRT_WITH_LZO
1475 VBoxRT_LIBS += lzo2
1476endif
1477VBoxRT_LIBS.linux = \
1478 crypt
1479VBoxRT_LIBS.darwin = \
1480 iconv
1481VBoxRT_LIBS.freebsd = \
1482 iconv \
1483 rt
1484VBoxRT_LIBS.haiku = \
1485 iconv
1486VBoxRT_LIBS.solaris = \
1487 kstat \
1488 contract
1489ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
1490 # SMBIOS not available on Solaris SPARC.
1491 VBoxRT_LIBS.solaris += smbios
1492endif
1493VBoxRT_LIBS.win = \
1494 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \
1495 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib
1496VBoxRT_LDFLAGS.darwin = -framework IOKit -framework CoreFoundation -framework CoreServices -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib
1497VBoxRT_LDFLAGS.win = /MANIFEST
1498
1499if1of ($(DLLS), VBoxRT)
1500$$(VBoxRT_0_OUTDIR)/VBoxRT.def: \
1501 $(PATH_SUB_CURRENT)/r3/win/VBoxRT-$$(if-expr $$(KBUILD_TARGET_ARCH) == amd64,win64,win32).def \
1502 $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
1503 $(RM) -f -- $@
1504 $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
1505endif
1506
1507
1508#
1509# HACK ALERT! Make testcase run during build on SELinux boxes.
1510# Create a dummy DLL that ensure that VBoxRT is installed
1511# during the DLL pass and cleaned up later.
1512#
1513ifeq ($(KBUILD_TARGET),linux)
1514 if1of (VBoxRT, $(DLLS))
1515 ifneq ($(wildcard /usr/bin/chcon),)
1516VBoxRT_INSTTYPE = none
1517VBoxRT_DEBUG_INSTTYPE = both
1518
1519DLLS += VBoxRTDummy
1520VBoxRTDummy_TEMPLATE = VBoxR3Dll
1521VBoxRTDummy_INSTTYPE = none
1522VBoxRTDummy_LIBS = $(PATH_STAGE_BIN)/VBoxRT.so
1523VBoxRTDummy_CLEAN = $(PATH_STAGE_BIN)/VBoxRT.so
1524BLDDIRS += $(PATH_STAGE_BIN)
1525
1526$(PATH_STAGE_BIN)/VBoxRT.so: $$(VBoxRT_1_TARGET) | $$(dir $$@)
1527 $(INSTALL) $< $@
1528 chcon -t texrel_shlib_t $@ || true
1529
1530VBoxRT:: VBoxRTDummy
1531 endif # chcon present.
1532 endif # building VBoxRT
1533endif # linux
1534
1535
1536#
1537# VBoxRT-x86 - 32-bit version of VBoxRT
1538#
1539VBoxRT-x86_EXTENDS = VBoxRT
1540VBoxRT-x86_TEMPLATE = VBoxR3Dll-x86
1541VBoxRT-x86_INST.win = $(INST_DLL)x86/
1542VBoxRT-x86_SDKS = VBOX_LIBXML2
1543ifdef VBOX_WITH_LIBCURL
1544 VBoxRT-x86_SDKS += VBOX_LIBCURL-x86
1545endif
1546VBoxRT-x86_SDKS += VBOX_OPENSSL-x86
1547
1548VBoxRT-x86_LIBS = \
1549 $(PATH_STAGE_LIB)/VBox-liblzf-x86$(VBOX_SUFF_LIB)
1550if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1551VBoxRT-x86_LIBS += \
1552 $(PATH_STAGE_LIB)/SUPR3-x86$(VBOX_SUFF_LIB)
1553endif
1554ifdef IPRT_WITH_KSTUFF
1555 VBoxRT-x86_LIBS += \
1556 $(PATH_STAGE_LIB)/VBox-kStuff-x86$(VBOX_SUFF_LIB)
1557endif
1558ifndef SDK_VBOX_LIBXML2_LIBS
1559 VBoxRT-x86_LIBS += \
1560 $(PATH_STAGE_LIB)/VBox-libxml2-x86$(VBOX_SUFF_LIB)
1561endif
1562VBoxRT-x86_LIBS += \
1563 $(SDK_VBOX_ZLIB_LIBS-x86)
1564ifndef SDK_VBOX_OPENSSL_LIBS
1565 VBoxRT-x86_LIBS += \
1566 $(PATH_STAGE_LIB)/VBox-libcrypto-x86$(VBOX_SUFF_LIB) \
1567 $(PATH_STAGE_LIB)/VBox-libssl-x86$(VBOX_SUFF_LIB)
1568endif
1569ifdef IPRT_WITH_LZO
1570 VBoxRT-x86_LIBS += lzo2
1571endif
1572VBoxRT-x86_LIBS.linux = \
1573 crypt
1574VBoxRT-x86_LIBS.darwin = \
1575 iconv
1576VBoxRT-x86_LIBS.freebsd = \
1577 iconv \
1578 rt
1579VBoxRT-x86_LIBS.haiku = \
1580 iconv
1581VBoxRT-x86_LIBS.solaris = \
1582 kstat \
1583 contract
1584ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
1585 # SMBIOS not available on Solaris SPARC.
1586 VBoxRT-x86_LIBS.solaris += smbios
1587endif
1588VBoxRT-x86_LIBS.win = \
1589 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \
1590 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib
1591
1592VBoxRT-x86_SOURCES.win = $(filter-out %.def,$(VBoxRT_SOURCES.win)) \
1593 $(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def
1594if1of ($(DLLS), VBoxRT-x86)
1595$$(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def: \
1596 $(PATH_SUB_CURRENT)/r3/win/VBoxRT-win32.def \
1597 $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
1598 $(RM) -f -- $@
1599 $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
1600endif
1601
1602#
1603# VBoxRTImp - Import library/hack.
1604#
1605ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.amd64)
1606$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def r3/win/VBoxRT-win64.def)
1607else ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86)
1608$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def r3/win/VBoxRT-win32.def)
1609else
1610$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def)
1611endif
1612
1613
1614#
1615# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
1616# This is used together with VBoxRT.
1617#
1618## @todo the *_alias.c stuff is busted, remove and use RT_WITH_NOCRT_ALIASES instead.
1619RuntimeR3NoCRTGCC_TEMPLATE = VBoxNoCrtGccLib
1620RuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
1621ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1622 RuntimeR3NoCRTGCC_DEFS += RT_NO_GIP
1623endif
1624RuntimeR3NoCRTGCC_INCS = include
1625RuntimeR3NoCRTGCC_SOURCES := \
1626 common/misc/sanity-cpp.cpp \
1627 common/misc/sanity-c.c \
1628 \
1629 $(RuntimeNoCrt_SOURCES)
1630
1631if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1632RuntimeR3NoCRTGCC_SOURCES += \
1633 common/math/ceill.asm \
1634 common/math/cosl.asm \
1635 common/math/fabs.asm \
1636 common/math/fabsf.asm \
1637 common/math/fabsl.asm \
1638 common/math/floor.asm \
1639 common/math/floorf.asm \
1640 common/math/floorl.asm \
1641 common/math/ldexpl.asm \
1642 common/math/llrint.asm \
1643 common/math/llrintf.asm \
1644 common/math/llrintl.asm \
1645 common/math/logl.asm \
1646 common/math/lrint.asm \
1647 common/math/lrintf.asm \
1648 common/math/lrintl.asm \
1649 common/math/remainder.asm \
1650 common/math/remainderf.asm \
1651 common/math/remainderl.asm \
1652 common/math/sinl.asm \
1653 common/math/tanl.asm \
1654 common/math/trunc.asm \
1655 common/math/truncf.asm \
1656 common/math/truncl.asm \
1657 \
1658 common/string/memchr_alias.c \
1659 common/string/memcmp_alias.c \
1660 common/string/memcpy_alias.c \
1661 common/string/memmove_alias.c \
1662 common/string/memset_alias.c \
1663 common/string/strchr_alias.c \
1664 common/string/strcmp_alias.c \
1665 common/string/strlen_alias.c
1666endif
1667
1668RuntimeR3NoCRTGCC_SOURCES.x86 = \
1669 common/math/x86/fenv-x86.c \
1670 common/math/gcc/adddi3.c \
1671 common/math/gcc/anddi3.c \
1672 common/math/gcc/ashldi3.c \
1673 common/math/gcc/ashrdi3.c \
1674 common/math/gcc/cmpdi2.c \
1675 common/math/gcc/divdi3.c \
1676 common/math/gcc/iordi3.c \
1677 common/math/gcc/lshldi3.c \
1678 common/math/gcc/lshrdi3.c \
1679 common/math/gcc/moddi3.c \
1680 common/math/gcc/muldi3.c \
1681 common/math/gcc/negdi2.c \
1682 common/math/gcc/notdi2.c \
1683 common/math/gcc/qdivrem.c \
1684 common/math/gcc/subdi3.c \
1685 common/math/gcc/ucmpdi2.c \
1686 common/math/gcc/udivdi3.c \
1687 common/math/gcc/umoddi3.c \
1688 common/math/gcc/xordi3.c
1689
1690
1691#
1692# RuntimeR0 - Ring-0 library for VMMR0.
1693#
1694RuntimeR0_TEMPLATE = VBoxR0
1695RuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX
1696ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1697 RuntimeR0_DEFS += RT_NO_GIP
1698endif
1699RuntimeR0_INCS = include
1700RuntimeR0_SOURCES := \
1701 common/log/logellipsis.cpp \
1702 common/log/logrelellipsis.cpp \
1703 common/log/logcom.cpp \
1704 common/log/logformat.cpp \
1705 common/log/tracebuf.cpp \
1706 common/log/tracedefault.cpp \
1707 common/misc/RTAssertMsg1Weak.cpp \
1708 common/misc/RTAssertMsg2.cpp \
1709 common/misc/RTAssertMsg2Add.cpp \
1710 common/misc/RTAssertMsg2AddWeak.cpp \
1711 common/misc/RTAssertMsg2AddWeakV.cpp \
1712 common/misc/RTAssertMsg2Weak.cpp \
1713 common/misc/RTAssertMsg2WeakV.cpp \
1714 common/misc/buildconfig.cpp \
1715 common/misc/once.cpp \
1716 common/misc/sanity-c.c \
1717 common/misc/sanity-cpp.cpp \
1718 common/misc/term.cpp \
1719 common/path/RTPathFilename.cpp \
1720 common/string/strhash1.cpp \
1721 common/string/strncmp.cpp \
1722 common/string/strpbrk.cpp \
1723 common/string/RTStrCat.cpp \
1724 common/string/RTStrCatEx.cpp \
1725 common/string/RTStrCatP.cpp \
1726 common/string/RTStrCatPEx.cpp \
1727 common/string/RTStrCopy.cpp \
1728 common/string/RTStrCopyEx.cpp \
1729 common/string/RTStrCopyP.cpp \
1730 common/string/RTStrCopyPEx.cpp \
1731 common/string/RTStrNLen.cpp \
1732 common/string/RTStrNLenEx.cpp \
1733 common/table/avlgcptr.cpp \
1734 common/table/avlhcphys.cpp \
1735 common/table/avllu32.cpp \
1736 common/table/avlogcphys.cpp \
1737 common/table/avlogcptr.cpp \
1738 common/table/avlohcphys.cpp \
1739 common/table/avloioport.cpp \
1740 common/table/avlpv.cpp \
1741 common/table/avlrogcphys.cpp \
1742 common/table/avlrogcptr.cpp \
1743 common/table/avlroioport.cpp \
1744 common/table/avlroogcptr.cpp \
1745 common/table/avlu32.cpp \
1746 common/table/avlou32.cpp \
1747 common/time/timesup.cpp \
1748 generic/RTAssertShouldPanic-generic.cpp \
1749 \
1750 $(RuntimeNoCrt_SOURCES)
1751
1752if1of ($(KBUILD_TARGET), darwin solaris freebsd)
1753RuntimeR0_SOURCES += \
1754 common/math/gcc/adddi3.c \
1755 common/math/gcc/anddi3.c \
1756 common/math/gcc/ashldi3.c \
1757 common/math/gcc/ashrdi3.c \
1758 common/math/gcc/cmpdi2.c \
1759 common/math/gcc/divdi3.c \
1760 common/math/gcc/iordi3.c \
1761 common/math/gcc/lshldi3.c \
1762 common/math/gcc/lshrdi3.c \
1763 common/math/gcc/moddi3.c \
1764 common/math/gcc/muldi3.c \
1765 common/math/gcc/negdi2.c \
1766 common/math/gcc/notdi2.c \
1767 common/math/gcc/qdivrem.c \
1768 common/math/gcc/subdi3.c \
1769 common/math/gcc/ucmpdi2.c \
1770 common/math/gcc/udivdi3.c \
1771 common/math/gcc/umoddi3.c \
1772 common/math/gcc/xordi3.c
1773endif
1774
1775RuntimeR0_SOURCES.x86 += \
1776 common/asm/ASMCpuIdExSlow.asm \
1777 common/asm/ASMAtomicUoAndU64.asm \
1778 common/asm/ASMAtomicUoAndU32.asm \
1779 common/asm/ASMAtomicUoOrU64.asm \
1780 common/asm/ASMAtomicUoOrU32.asm \
1781 common/asm/ASMRdMsrEx.asm \
1782 common/asm/ASMWrMsrEx.asm
1783RuntimeR0_SOURCES.amd64 += \
1784 common/asm/ASMCpuIdExSlow.asm \
1785 common/asm/ASMAtomicUoAndU64.asm \
1786 common/asm/ASMAtomicUoAndU32.asm \
1787 common/asm/ASMAtomicUoOrU64.asm \
1788 common/asm/ASMAtomicUoOrU32.asm \
1789 common/asm/ASMRdMsrEx.asm \
1790 common/asm/ASMWrMsrEx.asm
1791
1792#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
1793# RuntimeR0_SOURCES += common/time/timesupA.asm
1794#else
1795 RuntimeR0_SOURCES += common/time/timesupref.cpp
1796#endif
1797
1798RuntimeR0_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
1799RuntimeR0_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
1800RuntimeR0_SOURCES.win = \
1801 nt/NtProcessStartup-stub.cpp
1802
1803RuntimeR0_SOURCES.os2 = \
1804 os2/sys0.asm
1805
1806
1807#
1808# RuntimeR0Stub - Ring-0 context startup stub for Windows and Solaris.
1809#
1810RuntimeR0Stub_TEMPLATE = $(if-expr "$(KBUILD_TARGET)" == "solaris",VBoxR0DrvLib,VBoxR0)
1811RuntimeR0Stub_SOURCES.win = \
1812 nt/NtProcessStartup-stub.cpp
1813RuntimeR0Stub_SOURCES.solaris = \
1814 r0drv/solaris/modulestub-r0drv-solaris.c
1815
1816
1817#
1818# RuntimeR0Drv - Ring-0 library for host drivers.
1819#
1820RuntimeR0Drv_TEMPLATE = VBoxR0DrvLib
1821RuntimeR0Drv_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK) $(VBOX_WINPSDK)INCS VBOX_OPENSSL
1822RuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS RT_NO_EXPORT_SYMBOL
1823RuntimeR0Drv_DEFS.win = IN_SUP_R0 LDR_ONLY_PE
1824RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0
1825
1826RuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include
1827RuntimeR0Drv_INCS.freebsd = \
1828 $(PATH_STAGE)/gen-sys-hdrs
1829RuntimeR0Drv_INCS.linux = \
1830 r0drv/linux
1831RuntimeR0Drv_INCS.solaris = \
1832 r0drv/solaris/vbi/i86pc \
1833 r0drv/solaris/vbi/i86pc/sys
1834
1835RuntimeR0Drv_SOURCES = \
1836 common/alloc/alloc.cpp \
1837 common/alloc/heapsimple.cpp \
1838 common/alloc/heapoffset.cpp \
1839 common/checksum/alt-md5.cpp \
1840 common/checksum/crc32.cpp \
1841 common/checksum/crc64.cpp \
1842 common/checksum/ipv4.cpp \
1843 common/checksum/ipv6.cpp \
1844 common/err/RTErrConvertToErrno.cpp \
1845 common/err/RTErrConvertFromErrno.cpp \
1846 common/log/log.cpp \
1847 common/log/logellipsis.cpp \
1848 common/log/logrel.cpp \
1849 common/log/logrelellipsis.cpp \
1850 common/log/logcom.cpp \
1851 common/log/logformat.cpp \
1852 common/log/tracebuf.cpp \
1853 common/log/tracedefault.cpp \
1854 common/misc/RTAssertMsg1Weak.cpp \
1855 common/misc/RTAssertMsg2.cpp \
1856 common/misc/RTAssertMsg2Add.cpp \
1857 common/misc/RTAssertMsg2AddWeak.cpp \
1858 common/misc/RTAssertMsg2AddWeakV.cpp \
1859 common/misc/RTAssertMsg2Weak.cpp \
1860 common/misc/RTAssertMsg2WeakV.cpp \
1861 common/misc/assert.cpp \
1862 common/misc/buildconfig.cpp \
1863 common/misc/handletable.cpp \
1864 common/misc/handletablectx.cpp \
1865 common/misc/handletablesimple.cpp \
1866 common/misc/once.cpp \
1867 common/misc/sanity-c.c \
1868 common/misc/sanity-cpp.cpp \
1869 common/misc/term.cpp \
1870 common/misc/RTMemWipeThoroughly.cpp \
1871 common/path/rtPathVolumeSpecLen.cpp \
1872 common/path/RTPathAbsDup.cpp \
1873 common/path/RTPathAbsEx.cpp \
1874 common/path/RTPathAbsExDup.cpp \
1875 common/path/RTPathAppend.cpp \
1876 common/path/RTPathAppendEx.cpp \
1877 common/path/RTPathExt.cpp \
1878 common/path/RTPathFilename.cpp \
1879 common/path/RTPathHasExt.cpp \
1880 common/path/RTPathHasPath.cpp \
1881 common/path/RTPathParseSimple.cpp \
1882 common/path/RTPathRealDup.cpp \
1883 common/path/RTPathStripExt.cpp \
1884 common/path/RTPathStripFilename.cpp \
1885 common/path/RTPathStripTrailingSlash.cpp \
1886 common/rand/rand.cpp \
1887 common/rand/randadv.cpp \
1888 common/rand/randparkmiller.cpp \
1889 common/string/RTStrCat.cpp \
1890 common/string/RTStrCatEx.cpp \
1891 common/string/RTStrCatP.cpp \
1892 common/string/RTStrCatPEx.cpp \
1893 common/string/RTStrCmp.cpp \
1894 common/string/RTStrCopy.cpp \
1895 common/string/RTStrCopyEx.cpp \
1896 common/string/RTStrCopyP.cpp \
1897 common/string/RTStrCopyPEx.cpp \
1898 common/string/RTStrNCmp.cpp \
1899 common/string/RTStrNLen.cpp \
1900 common/string/RTStrNLenEx.cpp \
1901 common/string/straprintf.cpp \
1902 common/string/strformat.cpp \
1903 common/string/strformatnum.cpp \
1904 common/string/strformatrt.cpp \
1905 common/string/strformattype.cpp \
1906 common/string/strhash1.cpp \
1907 common/string/strprintf.cpp \
1908 common/string/strtonum.cpp \
1909 common/string/stringalloc.cpp \
1910 common/string/unidata-flags.cpp \
1911 common/string/unidata-lower.cpp \
1912 common/string/unidata-upper.cpp \
1913 common/string/utf-8.cpp \
1914 common/string/utf-8-case.cpp \
1915 common/string/utf-8-case2.cpp \
1916 common/string/utf-16.cpp \
1917 common/string/utf-16-case.cpp \
1918 common/string/utf-16-latin-1.cpp \
1919 common/table/avlpv.cpp \
1920 common/time/time.cpp \
1921 generic/RTLogWriteStdErr-stub-generic.cpp \
1922 generic/RTLogWriteUser-generic.cpp \
1923 generic/RTMpGetArraySize-generic.cpp \
1924 generic/RTRandAdvCreateSystemFaster-generic.cpp \
1925 generic/RTSemEventWait-2-ex-generic.cpp \
1926 generic/RTSemEventWaitNoResume-2-ex-generic.cpp \
1927 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1928 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1929 generic/errvars-generic.cpp \
1930 generic/uuid-generic.cpp \
1931 r0drv/alloc-r0drv.cpp \
1932 r0drv/initterm-r0drv.cpp \
1933 r0drv/generic/semspinmutex-r0drv-generic.c \
1934 VBox/log-vbox.cpp \
1935
1936RuntimeR0Drv_SOURCES.amd64 = \
1937 common/asm/ASMRdMsrEx.asm \
1938 common/asm/ASMWrMsrEx.asm
1939RuntimeR0Drv_SOURCES.x86 = \
1940 common/asm/ASMRdMsrEx.asm \
1941 common/asm/ASMWrMsrEx.asm
1942
1943
1944RuntimeR0Drv_SOURCES.linux = \
1945 common/misc/thread.cpp \
1946 common/string/strpbrk.cpp \
1947 generic/RTAssertShouldPanic-generic.cpp \
1948 generic/RTLogWriteStdOut-stub-generic.cpp \
1949 generic/RTMpGetCoreCount-generic.cpp \
1950 generic/mppresent-generic.cpp \
1951 r0drv/linux/alloc-r0drv-linux.c \
1952 r0drv/linux/assert-r0drv-linux.c \
1953 r0drv/linux/initterm-r0drv-linux.c \
1954 r0drv/linux/memobj-r0drv-linux.c \
1955 r0drv/linux/memuserkernel-r0drv-linux.c \
1956 r0drv/linux/mp-r0drv-linux.c \
1957 r0drv/linux/mpnotification-r0drv-linux.c \
1958 r0drv/linux/process-r0drv-linux.c \
1959 r0drv/linux/RTLogWriteDebugger-r0drv-linux.c \
1960 r0drv/linux/semevent-r0drv-linux.c \
1961 r0drv/linux/semeventmulti-r0drv-linux.c \
1962 r0drv/linux/semfastmutex-r0drv-linux.c \
1963 r0drv/linux/semmutex-r0drv-linux.c \
1964 r0drv/linux/spinlock-r0drv-linux.c \
1965 r0drv/linux/thread-r0drv-linux.c \
1966 r0drv/linux/thread2-r0drv-linux.c \
1967 r0drv/linux/threadctxhooks-r0drv-linux.c \
1968 r0drv/linux/time-r0drv-linux.c \
1969 r0drv/linux/timer-r0drv-linux.c \
1970 r0drv/memobj-r0drv.cpp \
1971 r0drv/mpnotification-r0drv.c \
1972 r0drv/powernotification-r0drv.c
1973
1974RuntimeR0Drv_SOURCES.win = \
1975 common/ldr/ldr.cpp \
1976 common/ldr/ldrEx.cpp \
1977 common/ldr/ldrPE.cpp \
1978 common/asn1/asn1-basics.cpp \
1979 common/asn1/asn1-dump.cpp \
1980 common/asn1/asn1-cursor.cpp \
1981 common/asn1/asn1-default-allocator.cpp \
1982 common/asn1/asn1-encode.cpp \
1983 common/asn1/asn1-ut-bitstring.cpp \
1984 common/asn1/asn1-ut-bitstring-decode.cpp \
1985 common/asn1/asn1-ut-boolean.cpp \
1986 common/asn1/asn1-ut-boolean-decode.cpp \
1987 common/asn1/asn1-ut-core.cpp \
1988 common/asn1/asn1-ut-core-decode.cpp \
1989 common/asn1/asn1-ut-dyntype.cpp \
1990 common/asn1/asn1-ut-dyntype-decode.cpp \
1991 common/asn1/asn1-ut-integer.cpp \
1992 common/asn1/asn1-ut-integer-decode.cpp \
1993 common/asn1/asn1-ut-null.cpp \
1994 common/asn1/asn1-ut-null-decode.cpp \
1995 common/asn1/asn1-ut-objid.cpp \
1996 common/asn1/asn1-ut-objid-decode.cpp \
1997 common/asn1/asn1-ut-octetstring.cpp \
1998 common/asn1/asn1-ut-octetstring-decode.cpp \
1999 common/asn1/asn1-ut-string.cpp \
2000 common/asn1/asn1-ut-string-decode.cpp \
2001 common/asn1/asn1-ut-time.cpp \
2002 common/asn1/asn1-ut-time-decode.cpp \
2003 common/crypto/digest-core.cpp \
2004 common/crypto/digest-builtin.cpp \
2005 common/crypto/rsa-asn1-decoder.cpp \
2006 common/crypto/rsa-core.cpp \
2007 common/crypto/rsa-init.cpp \
2008 common/crypto/rsa-sanity.cpp \
2009 common/crypto/pkcs7-asn1-decoder.cpp \
2010 common/crypto/pkcs7-core.cpp \
2011 common/crypto/pkcs7-init.cpp \
2012 common/crypto/pkcs7-sanity.cpp \
2013 common/crypto/pkcs7-verify.cpp \
2014 common/crypto/pkix-signature-builtin.cpp \
2015 common/crypto/pkix-signature-core.cpp \
2016 common/crypto/pkix-signature-rsa.cpp \
2017 common/crypto/pkix-util.cpp \
2018 common/crypto/pkix-verify.cpp \
2019 common/crypto/spc-asn1-decoder.cpp \
2020 common/crypto/spc-core.cpp \
2021 common/crypto/spc-init.cpp \
2022 common/crypto/spc-sanity.cpp \
2023 common/crypto/x509-asn1-decoder.cpp \
2024 common/crypto/x509-certpaths.cpp \
2025 common/crypto/x509-core.cpp \
2026 common/crypto/x509-init.cpp \
2027 common/crypto/x509-sanity.cpp \
2028 common/crypto/x509-verify.cpp \
2029 common/crypto/store.cpp \
2030 common/crypto/store-inmem.cpp \
2031 common/crypto/taf-asn1-decoder.cpp \
2032 common/crypto/taf-core.cpp \
2033 common/crypto/taf-init.cpp \
2034 common/crypto/taf-sanity.cpp \
2035 common/checksum/alt-md2.cpp \
2036 common/checksum/alt-sha1.cpp \
2037 common/checksum/alt-sha256.cpp \
2038 common/checksum/alt-sha512.cpp \
2039 common/checksum/md2str.cpp \
2040 common/checksum/md5str.cpp \
2041 common/checksum/sha1str.cpp \
2042 common/checksum/sha256str.cpp \
2043 common/checksum/sha512str.cpp \
2044 common/err/errinfo.cpp \
2045 common/path/RTPathChangeToUnixSlashes.cpp \
2046 common/math/bignum.cpp \
2047 common/string/RTStrPrintHexBytes.cpp \
2048 common/string/RTUtf16Copy.cpp \
2049 common/string/RTUtf16CopyAscii.cpp \
2050 common/string/RTUtf16Cat.cpp \
2051 common/string/RTUtf16CatAscii.cpp \
2052 common/string/RTUtf16End.cpp \
2053 common/string/RTUtf16NLen.cpp \
2054 common/string/RTUtf16NLenEx.cpp \
2055 common/string/RTUtf16PrintHexBytes.cpp \
2056 common/string/strstrip.cpp \
2057 generic/memsafer-generic.cpp \
2058 \
2059 common/misc/thread.cpp \
2060 common/string/memcmp.asm \
2061 common/string/memchr.asm \
2062 common/string/memcpy.asm \
2063 common/string/memset.asm \
2064 common/string/memmove.asm \
2065 common/string/strlen.asm \
2066 common/string/strncmp.cpp \
2067 common/string/strpbrk.cpp \
2068 generic/RTAssertShouldPanic-generic.cpp \
2069 generic/RTLogWriteStdOut-stub-generic.cpp \
2070 generic/RTTimerCreate-generic.cpp \
2071 generic/mppresent-generic.cpp \
2072 generic/RTMpGetCoreCount-generic.cpp \
2073 nt/RTErrConvertFromNtStatus.cpp \
2074 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2075 r0drv/memobj-r0drv.cpp \
2076 r0drv/mpnotification-r0drv.c \
2077 r0drv/powernotification-r0drv.c \
2078 r0drv/nt/alloc-r0drv-nt.cpp \
2079 r0drv/nt/assert-r0drv-nt.cpp \
2080 r0drv/nt/initterm-r0drv-nt.cpp \
2081 r0drv/nt/memobj-r0drv-nt.cpp \
2082 r0drv/nt/memuserkernel-r0drv-nt.cpp \
2083 r0drv/nt/mp-r0drv-nt.cpp \
2084 r0drv/nt/mpnotification-r0drv-nt.cpp \
2085 r0drv/nt/process-r0drv-nt.cpp \
2086 r0drv/nt/RTLogWriteDebugger-r0drv-nt.cpp \
2087 r0drv/nt/semevent-r0drv-nt.cpp \
2088 r0drv/nt/semeventmulti-r0drv-nt.cpp \
2089 r0drv/nt/semfastmutex-r0drv-nt.cpp \
2090 r0drv/nt/semmutex-r0drv-nt.cpp \
2091 r0drv/nt/spinlock-r0drv-nt.cpp \
2092 r0drv/nt/thread-r0drv-nt.cpp \
2093 r0drv/nt/thread2-r0drv-nt.cpp \
2094 r0drv/nt/time-r0drv-nt.cpp \
2095 r0drv/nt/timer-r0drv-nt.cpp \
2096 r0drv/nt/toxic-chkstk-r0drv-nt.asm \
2097 r0drv/nt/RTTimerGetSystemGranularity-r0drv-nt.cpp
2098
2099RuntimeR0Drv_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
2100RuntimeR0Drv_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
2101
2102RuntimeR0Drv_SOURCES.darwin = \
2103 common/misc/thread.cpp \
2104 common/string/memchr.asm \
2105 common/string/strpbrk.cpp \
2106 darwin/RTErrConvertFromDarwin.cpp \
2107 darwin/RTErrConvertFromDarwinIO.cpp \
2108 darwin/RTErrConvertFromDarwinKern.cpp \
2109 generic/RTAssertShouldPanic-generic.cpp \
2110 generic/RTTimerCreate-generic.cpp \
2111 generic/RTMpGetCoreCount-generic.cpp \
2112 generic/mppresent-generic.cpp \
2113 generic/timer-generic.cpp \
2114 r0drv/generic/mpnotification-r0drv-generic.cpp \
2115 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2116 r0drv/darwin/alloc-r0drv-darwin.cpp \
2117 r0drv/darwin/assert-r0drv-darwin.cpp \
2118 r0drv/darwin/initterm-r0drv-darwin.cpp \
2119 r0drv/darwin/dbgkrnlinfo-r0drv-darwin.cpp \
2120 r0drv/darwin/memobj-r0drv-darwin.cpp \
2121 r0drv/darwin/mp-r0drv-darwin.cpp \
2122 r0drv/darwin/memuserkernel-r0drv-darwin.cpp \
2123 r0drv/darwin/process-r0drv-darwin.cpp \
2124 r0drv/darwin/RTLogWriteDebugger-r0drv-darwin.cpp \
2125 r0drv/darwin/RTLogWriteStdOut-r0drv-darwin.cpp \
2126 r0drv/darwin/semevent-r0drv-darwin.cpp \
2127 r0drv/darwin/semeventmulti-r0drv-darwin.cpp \
2128 r0drv/darwin/semfastmutex-r0drv-darwin.cpp \
2129 r0drv/darwin/semmutex-r0drv-darwin.cpp \
2130 r0drv/darwin/spinlock-r0drv-darwin.cpp \
2131 r0drv/darwin/thread-r0drv-darwin.cpp \
2132 r0drv/darwin/thread2-r0drv-darwin.cpp \
2133 r0drv/darwin/threadpreempt-r0drv-darwin.cpp \
2134 r0drv/darwin/time-r0drv-darwin.cpp \
2135 r0drv/memobj-r0drv.cpp \
2136 r0drv/powernotification-r0drv.c
2137
2138RuntimeR0Drv_SOURCES.os2 = \
2139 common/string/memchr.asm \
2140 common/string/memcmp.asm \
2141 common/string/memcpy.asm \
2142 common/string/mempcpy.asm \
2143 common/string/memmove.asm \
2144 common/string/memset.asm \
2145 common/string/strchr.asm \
2146 common/string/strcmp.asm \
2147 common/string/strcpy.asm \
2148 common/string/strlen.asm \
2149 \
2150 common/string/strncmp.cpp \
2151 common/string/strpbrk.cpp \
2152 \
2153 common/misc/thread.cpp \
2154 generic/RTAssertShouldPanic-generic.cpp \
2155 generic/RTLogWriteDebugger-generic.cpp \
2156 generic/RTLogWriteStdOut-stub-generic.cpp \
2157 generic/RTMpCpuId-generic.cpp \
2158 generic/RTMpCpuIdFromSetIndex-generic.cpp \
2159 generic/RTMpCpuIdToSetIndex-generic.cpp \
2160 generic/RTMpIsCpuPossible-generic.cpp \
2161 generic/RTMpGetCount-generic.cpp \
2162 generic/RTMpGetMaxCpuId-generic.cpp \
2163 generic/RTMpGetOnlineCount-generic.cpp \
2164 generic/RTMpGetOnlineSet-generic.cpp \
2165 generic/RTMpGetSet-generic.cpp \
2166 generic/RTMpIsCpuOnline-generic.cpp \
2167 generic/RTTimerCreate-generic.cpp \
2168 generic/mppresent-generic.cpp \
2169 os2/RTErrConvertFromOS2.cpp \
2170 os2/rtSemWaitOs2ConvertTimeout.cpp \
2171 os2/sys0.asm \
2172 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2173 r0drv/generic/RTMpOn-r0drv-generic.cpp \
2174 r0drv/generic/mpnotification-r0drv-generic.cpp \
2175 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2176 r0drv/memobj-r0drv.cpp \
2177 r0drv/powernotification-r0drv.c \
2178 r0drv/os2/alloc-r0drv-os2.cpp \
2179 r0drv/os2/assert-r0drv-os2.cpp \
2180 r0drv/os2/assertA-r0drv-os2.asm \
2181 r0drv/os2/initterm-r0drv-os2.cpp \
2182 r0drv/os2/memobj-r0drv-os2.cpp \
2183 r0drv/os2/memuserkernel-r0drv-os2.cpp \
2184 r0drv/os2/os2imports.imp \
2185 r0drv/os2/process-r0drv-os2.cpp \
2186 r0drv/os2/RTR0AssertPanicSystem-r0drv-os2.asm \
2187 r0drv/os2/RTR0Os2DHQueryDOSVar.asm \
2188 r0drv/os2/RTR0Os2DHVMGlobalToProcess.asm \
2189 r0drv/os2/semevent-r0drv-os2.cpp \
2190 r0drv/os2/semeventmulti-r0drv-os2.cpp \
2191 r0drv/os2/semfastmutex-r0drv-os2.cpp \
2192 r0drv/os2/spinlock-r0drv-os2.cpp \
2193 r0drv/os2/thread-r0drv-os2.cpp \
2194 r0drv/os2/thread2-r0drv-os2.cpp \
2195 r0drv/os2/time-r0drv-os2.cpp \
2196 r0drv/os2/timer-r0drv-os2.cpp \
2197 r0drv/os2/timerA-r0drv-os2.asm
2198
2199RuntimeR0Drv_SOURCES.freebsd = \
2200 common/misc/thread.cpp \
2201 common/string/memchr.asm \
2202 common/string/memmove.asm \
2203 common/string/strpbrk.cpp \
2204 common/string/memcmp.asm \
2205 common/string/strchr.asm \
2206 generic/RTAssertShouldPanic-generic.cpp \
2207 generic/RTLogWriteDebugger-generic.cpp \
2208 generic/RTLogWriteStdOut-stub-generic.cpp \
2209 generic/RTTimerCreate-generic.cpp \
2210 generic/mppresent-generic.cpp \
2211 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2212 r0drv/generic/mpnotification-r0drv-generic.cpp \
2213 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2214 r0drv/freebsd/alloc-r0drv-freebsd.c \
2215 r0drv/freebsd/assert-r0drv-freebsd.c \
2216 r0drv/freebsd/initterm-r0drv-freebsd.c \
2217 r0drv/freebsd/memobj-r0drv-freebsd.c \
2218 r0drv/freebsd/memuserkernel-r0drv-freebsd.c \
2219 r0drv/freebsd/process-r0drv-freebsd.c \
2220 r0drv/freebsd/semevent-r0drv-freebsd.c \
2221 r0drv/freebsd/semeventmulti-r0drv-freebsd.c \
2222 r0drv/freebsd/semfastmutex-r0drv-freebsd.c \
2223 r0drv/freebsd/semmutex-r0drv-freebsd.c \
2224 r0drv/freebsd/spinlock-r0drv-freebsd.c \
2225 r0drv/freebsd/thread-r0drv-freebsd.c \
2226 r0drv/freebsd/thread2-r0drv-freebsd.c \
2227 r0drv/freebsd/time-r0drv-freebsd.c \
2228 r0drv/freebsd/mp-r0drv-freebsd.c \
2229 generic/timer-generic.cpp \
2230 r0drv/memobj-r0drv.cpp \
2231 r0drv/powernotification-r0drv.c
2232
2233RuntimeR0Drv_SOURCES.solaris = \
2234 common/misc/thread.cpp \
2235 common/string/memchr.asm \
2236 generic/RTAssertShouldPanic-generic.cpp \
2237 generic/RTLogWriteStdOut-stub-generic.cpp \
2238 generic/RTMpGetCoreCount-generic.cpp \
2239 generic/RTTimerCreate-generic.cpp \
2240 generic/mppresent-generic.cpp \
2241 r0drv/memobj-r0drv.cpp \
2242 r0drv/mpnotification-r0drv.c \
2243 r0drv/powernotification-r0drv.c \
2244 r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
2245 r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c \
2246 r0drv/solaris/alloc-r0drv-solaris.c \
2247 r0drv/solaris/assert-r0drv-solaris.c \
2248 r0drv/solaris/dbgkrnlinfo-r0drv-solaris.c \
2249 r0drv/solaris/initterm-r0drv-solaris.c \
2250 r0drv/solaris/memuserkernel-r0drv-solaris.c \
2251 r0drv/solaris/mpnotification-r0drv-solaris.c \
2252 r0drv/solaris/memobj-r0drv-solaris.c \
2253 r0drv/solaris/mp-r0drv-solaris.c \
2254 r0drv/solaris/process-r0drv-solaris.c \
2255 r0drv/solaris/semevent-r0drv-solaris.c \
2256 r0drv/solaris/semeventmulti-r0drv-solaris.c \
2257 r0drv/solaris/semfastmutex-r0drv-solaris.c \
2258 r0drv/solaris/semmutex-r0drv-solaris.c \
2259 r0drv/solaris/spinlock-r0drv-solaris.c \
2260 r0drv/solaris/thread-r0drv-solaris.c \
2261 r0drv/solaris/thread2-r0drv-solaris.c \
2262 r0drv/solaris/threadctxhooks-r0drv-solaris.c \
2263 r0drv/solaris/time-r0drv-solaris.c \
2264 r0drv/solaris/timer-r0drv-solaris.c
2265
2266RuntimeR0Drv_SOURCES.haiku = \
2267 common/misc/thread.cpp \
2268 common/string/memchr.asm \
2269 common/string/memmove.asm \
2270 common/string/strpbrk.cpp \
2271 common/string/memcmp.asm \
2272 common/string/strchr.asm \
2273 generic/RTAssertShouldPanic-generic.cpp \
2274 generic/RTTimerCreate-generic.cpp \
2275 generic/mppresent-generic.cpp \
2276 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2277 r0drv/generic/mpnotification-r0drv-generic.cpp \
2278 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2279 r0drv/haiku/alloc-r0drv-haiku.c \
2280 r0drv/haiku/assert-r0drv-haiku.c \
2281 r0drv/haiku/initterm-r0drv-haiku.c \
2282 r0drv/haiku/memobj-r0drv-haiku.c \
2283 r0drv/haiku/mp-r0drv-haiku.c \
2284 r0drv/haiku/process-r0drv-haiku.c \
2285 r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c \
2286 r0drv/haiku/RTLogWriteStdOut-r0drv-haiku.c \
2287 r0drv/haiku/semevent-r0drv-haiku.c \
2288 r0drv/haiku/semeventmulti-r0drv-haiku.c \
2289 r0drv/haiku/semfastmutex-r0drv-haiku.c \
2290 r0drv/haiku/semmutex-r0drv-haiku.c \
2291 r0drv/haiku/spinlock-r0drv-haiku.c \
2292 r0drv/haiku/thread-r0drv-haiku.c \
2293 r0drv/haiku/thread2-r0drv-haiku.c \
2294 r0drv/haiku/time-r0drv-haiku.c \
2295 generic/timer-generic.cpp \
2296 r0drv/memobj-r0drv.cpp \
2297 r0drv/powernotification-r0drv.c
2298
2299## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
2300
2301RuntimeR0Drv_ORDERDEPS.freebsd = \
2302 $(PATH_STAGE)/gen-sys-hdrs/bus_if.h \
2303 $(PATH_STAGE)/gen-sys-hdrs/device_if.h
2304
2305
2306#
2307# RuntimeGuestR0 - Guest driver runtime.
2308# This is almost the same as the RuntimeR0Drv, the main difference
2309# is in the backdoor logging and the lack of sup.h (which should be
2310# made irrelevant even for RuntimeR0Drv).
2311#
2312RuntimeGuestR0_TEMPLATE := VBOXGUESTR0LIB
2313RuntimeGuestR0_EXTENDS = RuntimeR0Drv
2314RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
2315RuntimeGuestR0_SOURCES += \
2316 VBox/logbackdoor.cpp
2317RuntimeGuestR0_SOURCES.win := \
2318 $(filter-out common/checksum/md% common/checksum/sha%, $(RuntimeR0Drv_SOURCES.win))
2319
2320
2321#
2322# RuntimeGuestR0NT4 - Win32 NT4 guest driver runtime.
2323#
2324RuntimeGuestR0NT4_EXTENDS = RuntimeGuestR0
2325RuntimeGuestR0NT4_EXTENDS_BY = appending
2326RuntimeGuestR0NT4_DEFS = IPRT_TARGET_NT4
2327
2328
2329ifdef VBOX_WITH_RAW_MODE
2330 #
2331 # RuntimeRC - Raw-mode context library.
2332 #
2333 RuntimeRC_TEMPLATE = VBoxRc
2334 RuntimeRC_DEFS = IN_RT_RC RT_WITH_VBOX
2335 RuntimeRC_INCS = include
2336 RuntimeRC_SOURCES := \
2337 common/checksum/alt-md5.cpp \
2338 common/checksum/crc32.cpp \
2339 common/checksum/crc64.cpp \
2340 common/log/log.cpp \
2341 common/log/logellipsis.cpp \
2342 common/log/logrel.cpp \
2343 common/log/logrelellipsis.cpp \
2344 common/log/logcom.cpp \
2345 common/log/logformat.cpp \
2346 common/log/tracebuf.cpp \
2347 common/log/tracedefault.cpp \
2348 common/misc/RTAssertMsg1Weak.cpp \
2349 common/misc/RTAssertMsg2.cpp \
2350 common/misc/RTAssertMsg2Add.cpp \
2351 common/misc/RTAssertMsg2AddWeak.cpp \
2352 common/misc/RTAssertMsg2AddWeakV.cpp \
2353 common/misc/RTAssertMsg2Weak.cpp \
2354 common/misc/RTAssertMsg2WeakV.cpp \
2355 common/misc/assert.cpp \
2356 common/misc/buildconfig.cpp \
2357 common/misc/sanity-c.c \
2358 common/misc/sanity-cpp.cpp \
2359 common/path/RTPathFilename.cpp \
2360 common/string/strformat.cpp \
2361 common/string/strformatnum.cpp \
2362 common/string/strformatrt.cpp \
2363 common/string/strformattype.cpp \
2364 common/string/strncmp.cpp \
2365 common/string/strpbrk.cpp \
2366 common/string/strprintf.cpp \
2367 common/string/RTStrCopy.cpp \
2368 common/string/RTStrCopyEx.cpp \
2369 common/table/avllu32.cpp \
2370 common/table/avlou32.cpp \
2371 common/table/avlogcphys.cpp \
2372 common/table/avlogcptr.cpp \
2373 common/table/avlohcphys.cpp \
2374 common/table/avloioport.cpp \
2375 common/table/avlrogcphys.cpp \
2376 common/table/avlrogcptr.cpp \
2377 common/table/avlroioport.cpp \
2378 common/table/avlroogcptr.cpp \
2379 common/table/avlu32.cpp \
2380 common/time/timeprog.cpp \
2381 common/time/timesup.cpp \
2382 gc/initterm-gc.cpp \
2383 generic/RTAssertShouldPanic-generic.cpp \
2384 generic/errvars-generic.cpp \
2385 \
2386 $(RuntimeNoCrt_SOURCES)
2387
2388 #if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
2389 # RuntimeRC_SOURCES += common/time/timesupA.asm
2390 #else
2391 RuntimeRC_SOURCES += common/time/timesupref.cpp
2392 #endif
2393
2394 RuntimeRC_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
2395
2396 ifeq ($(VBOX_LDR_FMT32),lx)
2397 RuntimeRC_SOURCES += os2/sys0.asm
2398 endif
2399
2400 if1of ($(KBUILD_TARGET), darwin solaris freebsd)
2401 RuntimeRC_SOURCES += \
2402 common/math/gcc/adddi3.c \
2403 common/math/gcc/anddi3.c \
2404 common/math/gcc/ashldi3.c \
2405 common/math/gcc/ashrdi3.c \
2406 common/math/gcc/cmpdi2.c \
2407 common/math/gcc/divdi3.c \
2408 common/math/gcc/iordi3.c \
2409 common/math/gcc/lshldi3.c \
2410 common/math/gcc/lshrdi3.c \
2411 common/math/gcc/moddi3.c \
2412 common/math/gcc/muldi3.c \
2413 common/math/gcc/negdi2.c \
2414 common/math/gcc/notdi2.c \
2415 common/math/gcc/qdivrem.c \
2416 common/math/gcc/subdi3.c \
2417 common/math/gcc/ucmpdi2.c \
2418 common/math/gcc/udivdi3.c \
2419 common/math/gcc/umoddi3.c \
2420 common/math/gcc/xordi3.c
2421 endif
2422
2423
2424 #
2425 # RuntimeRCStub - Raw-mode context startup stub for Windows.
2426 #
2427 RuntimeRCStub_TEMPLATE = VBoxRc
2428 RuntimeRCStub_SOURCES.win = \
2429 nt/NtProcessStartup-stub.cpp
2430
2431
2432endif # VBOX_WITH_RAW_MODE
2433
2434
2435#
2436# Static library for new & delete for the electric fence.
2437#
2438RuntimeEFCPP_TEMPLATE := $(VBoxRT_TEMPLATE)
2439RuntimeEFCPP_SDKS := $(RuntimeR3_SDKS)
2440RuntimeEFCPP_SDKS.$(KBUILD_TARGET) := $(RuntimeR3_SDKS.$(KBUILD_TARGET))
2441RuntimeEFCPP_DEFS := $(RuntimeR3_DEFS)
2442RuntimeEFCPP_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
2443RuntimeEFCPP_INCS := $(RuntimeR3_INCS)
2444RuntimeEFCPP_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
2445RuntimeEFCPP_SOURCES := r3/alloc-ef-cpp.cpp
2446
2447
2448
2449#
2450# The NTDLL mini import library.
2451#
2452# Note! The reason for doing this is to avoid importing CRT symbols from the
2453# NTDLL. We do not wish to do this because:
2454# - Our compiler is usually a different one and we should use the
2455# matching CRT,
2456# - Older versions of NTDLL may not sport all the exports our w2k3 or
2457# later WINDDK ntdll.lib have and thus we may easily end up with
2458# images that does not load on older windows versions.
2459#
2460if1of (win,$(KBUILD_TARGET) $(KBUILD_HOST))
2461RuntimeR3NtDll-amd64_TEMPLATE = VBoxR3Dll
2462RuntimeR3NtDll-amd64_BLD_TRG_ARCH = amd64
2463RuntimeR3NtDll-amd64_ARFLAGS = /NODEFAULTLIB /MACHINE:amd64
2464RuntimeR3NtDll-amd64_SOURCES = \
2465 r3/win/ntdll-mini-implib.def
2466
2467RuntimeR3NtDll-x86_TEMPLATE = VBoxR3Dll
2468RuntimeR3NtDll-x86_BLD_TRG_ARCH = x86
2469RuntimeR3NtDll-x86_ARFLAGS = /NODEFAULTLIB /MACHINE:x86
2470RuntimeR3NtDll-x86_SOURCES = \
2471 r3/win/ntdll-mini-implib.def \
2472 $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm
2473RuntimeR3NtDll-x86_CLEAN = \
2474 $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm
2475
2476$$(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm: $(PATH_SUB_CURRENT)/r3/win/ntdll-mini-implib.def | $$(dir $$@)
2477 $(call MSG_GENERATE,,$@,$<)
2478 $(QUIET)$(APPEND) -nt "$@" \
2479 ';Autogenerated, do not edit' \
2480 '%include "iprt/asmdefs.mac"' \
2481 'BEGINCODE' \
2482 '%macro IMPLIB_EXPORT 1' \
2483 'global %1:function' \
2484 '%1: nop' \
2485 '%endm' \
2486 ''
2487 $(QUIET)$(SED) -e '1,/EXPORTS/d' \
2488 -e 's/^.*;;=[[:space:]]*\([^[:space:]]*\)[[:space:]]*$$/IMPLIB_EXPORT \1/' \
2489 $< --append $@
2490endif
2491
2492#
2493# Bag of tricks required for making VCC100 output binaries work on NT4, W2K
2494# early XP and early W2K3.
2495#
2496RuntimeR3VccTricks_TEMPLATE = VBoxR3Dll
2497RuntimeR3VccTricks_SOURCES = \
2498 r3/win/vcc100-kernel32-fakes.cpp \
2499 r3/win/vcc100-kernel32-fakesA.asm
2500
2501
2502#
2503# errmsg.cpp depends on a generated header.
2504#
2505common/err/errmsg.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgdata.h
2506common/err/errmsg.cpp_INCS = $(IPRT_OUT_DIR)
2507
2508win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgcomdata.h
2509win/errmsgwin.cpp_INCS = $(IPRT_OUT_DIR)
2510
2511# Our COM errors only for R3 libraries on the host
2512define def_errmsgwin_deps
2513 $(lib)_win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2514 $(lib)_common/err/errmsgxpcom.cpp_INCS = $(IPRT_OUT_DIR)
2515 $(lib)_common/err/errmsgxpcom.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2516endef
2517$(foreach lib,RuntimeR3 RuntimeBldProg VBoxRT VBoxRT-x86,$(eval $(def_errmsgwin_deps)))
2518
2519
2520#
2521# Generate the status code data.
2522#
2523$(IPRT_OUT_DIR)/errmsgdata.h: \
2524 $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.sed \
2525 $(PATH_ROOT)/include/iprt/err.h \
2526 $(PATH_ROOT)/include/VBox/err.h \
2527 | $$(dir $$@)
2528 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
2529 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
2530
2531## @todo r=bird: rename this to indicate that it's not only COM errors, but all win32/64 errors.
2532$(IPRT_OUT_DIR)/errmsgcomdata.h: \
2533 $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsgcom.sed \
2534 $$(PATH_SDK_$(VBOX_WINPSDK)_INC)/WinError.h \
2535 | $$(dir $$@)
2536 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
2537 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
2538
2539$(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts +| $(IPRT_OUT_DIR)/errmsgvboxcomdata.h: \
2540 $(VBOX_PATH_RUNTIME_SRC)/VBox/errmsgvboxcom.xsl \
2541 $(VBOX_XIDL_FILE_SRC) \
2542 | $$(dir $$@)
2543 $(call MSG_GENERATE,,$@,$(filter %.xidl,$^))
2544 $(QUIET)$(VBOX_XSLTPROC) -o $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $< $(filter %.xidl,$^)
2545 $(QUIET)$(CP) --changed -fv $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2546
2547
2548if "$(KBUILD_TARGET)" == "freebsd"
2549#
2550# FreeBSDGeneratedKernelHeaders - Generate some kernel interface headers.
2551#
2552# These are used by:
2553# - The RTMp* API in IPRT.
2554# - VBoxGuest
2555#
2556# Note! We cannot give a output path to the awk program, it will always
2557# generate the header next to the source. So, we'll have to temporarily copy
2558# the source file to the destination directory to work.
2559#
2560VBOX_AWK := /usr/bin/awk
2561INSTALLS += FreeBSDGeneratedKernelHeaders
2562FreeBSDGeneratedKernelHeaders_INST = gen-sys-hdrs/
2563FreeBSDGeneratedKernelHeaders_SOURCES = \
2564 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h \
2565 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h \
2566 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h
2567FreeBSDGeneratedKernelHeaders_CLEAN = $(FreeBSDGeneratedKernelHeaders_SOURCES)
2568
2569$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m | $$(dir $$@)
2570 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2571 $(QUIET)$(CP) -f $< $(@D)/bus_if.m
2572 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/bus_if.m -h -p
2573 $(QUIET)$(RM) $(@D)/bus_if.m
2574
2575$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m | $$(dir $$@)
2576 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2577 $(QUIET)$(CP) -f $< $(@D)/device_if.m
2578 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/device_if.m -h -p
2579 $(QUIET)$(RM) $(@D)/device_if.m
2580
2581$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m | $$(dir $$@)
2582 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2583 $(QUIET)$(CP) -f $< $(@D)/pci_if.m
2584 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/pci_if.m -h -p
2585 $(QUIET)$(RM) $(@D)/pci_if.m
2586endif # FreeBSD
2587
2588
2589#
2590# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
2591#
2592ldrELFRelocatable.cpp.o: ldrELF.o
2593ldrELFRelocatable.cpp.obj: ldrELF.obj
2594
2595
2596#
2597# Doxygen documentation.
2598#
2599IPRT_DOXYFILE_INPUT_DIRS = \
2600 $(PATH_ROOT)/include/iprt \
2601 $(PATH_ROOT)/include/iprt/cpp \
2602 $(PATH_ROOT)/include/iprt/linux \
2603 $(PATH_ROOT)/include/iprt/nocrt \
2604 $(PATH_ROOT)/include/iprt/nocrt/x86 \
2605 $(PATH_ROOT)/include/iprt/nocrt/amd64 \
2606 $(PATH_ROOT)/include/iprt/nocrt/compiler \
2607 $(VBOX_PATH_RUNTIME_SRC)/include/internal \
2608 $(VBOX_PATH_RUNTIME_SRC)/common/alloc \
2609 $(VBOX_PATH_RUNTIME_SRC)/common/asm \
2610 $(VBOX_PATH_RUNTIME_SRC)/common/checksum \
2611 $(VBOX_PATH_RUNTIME_SRC)/common/dbg \
2612 $(VBOX_PATH_RUNTIME_SRC)/common/err \
2613 $(VBOX_PATH_RUNTIME_SRC)/common/ldr \
2614 $(VBOX_PATH_RUNTIME_SRC)/common/log \
2615 $(VBOX_PATH_RUNTIME_SRC)/common/math \
2616 $(VBOX_PATH_RUNTIME_SRC)/common/math/amd64 \
2617 $(VBOX_PATH_RUNTIME_SRC)/common/math/gcc \
2618 $(VBOX_PATH_RUNTIME_SRC)/common/math/x86 \
2619 $(VBOX_PATH_RUNTIME_SRC)/common/misc \
2620 $(VBOX_PATH_RUNTIME_SRC)/common/path \
2621 $(VBOX_PATH_RUNTIME_SRC)/common/rand \
2622 $(VBOX_PATH_RUNTIME_SRC)/common/string \
2623 $(VBOX_PATH_RUNTIME_SRC)/common/table \
2624 $(VBOX_PATH_RUNTIME_SRC)/common/time \
2625 $(VBOX_PATH_RUNTIME_SRC)/VBox \
2626 $(foreach dir, $(VBOX_PATH_RUNTIME_SRC) $(VBOX_PATH_RUNTIME_SRC)/r3 $(VBOX_PATH_RUNTIME_SRC)/r0drv,\
2627 $(dir) \
2628 $(dir)/darwin \
2629 $(dir)/haiku \
2630 $(dir)/linux \
2631 $(dir)/nt \
2632 $(dir)/os2 \
2633 $(dir)/solaris \
2634 $(dir)/win \
2635 $(dir)/win32 \
2636 $(dir)/win64 \
2637 $(dir)/generic \
2638 )
2639
2640# These must come first in order to make things look nice.
2641IPRT_DOXYFILE_INPUT_FIRST =\
2642 $(PATH_ROOT)/include/iprt/cdefs.h \
2643 $(PATH_ROOT)/include/iprt/types.h \
2644 $(PATH_ROOT)/include/iprt/runtime.h \
2645 $(PATH_ROOT)/include/iprt/param.h \
2646 $(PATH_ROOT)/include/iprt/assert.h \
2647 $(PATH_ROOT)/include/iprt/asm.h \
2648
2649IPRT_DOXYFILE_INPUT := \
2650 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(IPRT_DOXYFILE_INPUT_DIRS)))) ) \
2651 $(foreach dir, $(IPRT_DOXYFILE_INPUT_DIRS), $(wildcard $(dir)/*.cpp $(dir)/.c $(dir)/.asm))
2652IPRT_DOXYFILE_INPUT := \
2653 $(IPRT_DOXYFILE_INPUT_FIRST) \
2654 $(filter-out $(IPRT_DOXYFILE_INPUT_FIRST), $(IPRT_DOXYFILE_INPUT))
2655
2656
2657IPRT_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/iprt
2658BLDDIRS += $(IPRT_DOXYFILE_OUTPUT)
2659
2660includedep $(IPRT_OUT_DIR)/Doxyfile.iprt.dep
2661
2662# Generate the Doxyfile
2663$(IPRT_OUT_DIR)/Doxyfile.iprt: \
2664 $(VBOX_PATH_RUNTIME_SRC)/Doxyfile \
2665 $(VBOX_PATH_RUNTIME_SRC)/Makefile.kmk \
2666 $(comp-vars IPRT_DOXYFILE_INPUT,DOXYGEN_INPUT_PREV,FORCE) \
2667 $(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE) \
2668 | $$(dir $$@)
2669 $(RM) -f $@ [email protected] [email protected]
2670 $(CP) -f $(VBOX_PATH_RUNTIME_SRC)/Doxyfile [email protected]
2671 $(APPEND) [email protected]
2672 $(APPEND) [email protected] "OUTPUT_DIRECTORY = $(IPRT_DOXYFILE_OUTPUT)"
2673 $(APPEND) [email protected] "WARN_LOGFILE = $(IPRT_DOXYFILE_OUTPUT)/errors"
2674 $(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include include . common/table"
2675 $(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
2676 $(APPEND) [email protected] "PREDEFINED += $(ARCH_BITS_DEFS)"
2677 $(APPEND) [email protected]
2678 $(APPEND) [email protected] "INPUT = $(IPRT_DOXYFILE_INPUT)"
2679 $(APPEND) [email protected]
2680 $(MV) -f [email protected] $@
2681 @$(APPEND) [email protected] "DOXYGEN_OUTPUT_PREV = $(IPRT_DOXYFILE_OUTPUT)"
2682 @$(APPEND) [email protected] "DOXYGEN_INPUT_PREV = $(IPRT_DOXYFILE_INPUT)"
2683
2684# Do the actual job.
2685$(IPRT_OUT_DIR)/docs.iprt: $(IPRT_OUT_DIR)/Doxyfile.iprt $$(IPRT_DOXYFILE_INPUT) | $(IPRT_DOXYFILE_OUTPUT)/
2686 $(RM) -f $(wildcard $(IPRT_DOXYFILE_OUTPUT)/html/*) $(IPRT_OUT_DIR)/docs.iprt
2687 doxygen $(IPRT_OUT_DIR)/Doxyfile.iprt
2688 $(APPEND) $(IPRT_OUT_DIR)/docs.iprt
2689
2690# aliases
2691docs.iprt: $(IPRT_OUT_DIR)/docs.iprt
2692if !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
2693docs: $(IPRT_OUT_DIR)/docs.iprt
2694endif
2695
2696test-doxygen::
2697 @echo test-$(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE)
2698 @echo $(IPRT_DOXYFILE_OUTPUT)
2699 @echo $(DOXYGEN_OUTPUT_PREV)
2700 @echo $(IPRT_DOXYFILE_INPUT)
2701
2702
2703#
2704# Test mangling.
2705#
2706if1of ($(LIBRARIES),RuntimeR3 RuntimeR0 RuntimeR0Drv RuntimeRC)
2707 test-mangling:: $(IPRT_OUT_DIR)/mangling.run
2708 OTHERS += $(IPRT_OUT_DIR)/mangling.run
2709 CLEANS += $(IPRT_OUT_DIR)/mangling.run
2710 $(IPRT_OUT_DIR)/mangling.run: \
2711 $$(RuntimeR3_1_TARGET) \
2712 $$(RuntimeR0_1_TARGET) \
2713 $$(RuntimeR0Drv_1_TARGET) \
2714 $$(RuntimeRC_1_TARGET)
2715 if1of ($(KBUILD_TARGET), win os2)
2716 $(call MSG_L1,IPRT: skipped mangling test.)
2717 else
2718# Generate a SED script from mangling.h that checks for known symbols.
2719 $(QUIET)$(SED) \
2720 -e '/# *define.*RT_MANGLER/!d' \
2721 -e 's/^.*RT_MANGLER(\([^)][^)]*\)).*$(DOLLAR)/\/^\1$(DOLLAR)\/b ok/' \
2722 $(PATH_ROOT)/include/iprt/mangling.h \
2723 --output "$@"
2724 $(QUIET)$(APPEND) -n '$@' \
2725 ':bad' \
2726 's/^\(.*\)$(DOLLAR)/error: Missing # define \1 /' \
2727 ':bad-pad' \
2728 '/^.\{0,70\}$(DOLLAR)/ { s/$(DOLLAR)/ /; bbad-pad; }' \
2729 's/define \([^ ]*\) \([ ]*\)$(DOLLAR)/define \1 \2RT_MANGLER(\1)/' \
2730 'p' \
2731 $(if-expr !defined(IPRT_IGNORE_TEST_MANGLING),'q 1') \
2732 '' \
2733 ':ok' \
2734 'd'
2735# Find the best way to generate a symbol list and subject it to mangling.h.
2736 if $(intersects $(KBUILD_TARGET), linux) && "$(VBOX_GCC_fvisibility-hidden)"
2737 $(call MSG_L1,IPRT: Testing mangling and visiblity for newer gcc...)
2738 $(QUIET)readelf -Ws $^ \
2739 | $(SED) \
2740 -e 's/[[:space:]]\+/ /g' \
2741 -e '/^ *[[:digit:]]\+:/!d' \
2742 -e 's/^ \+[[:digit:]]\+: \+[[:xdigit:]]\+ \+[[:digit:]]\+ \+//' \
2743 -e '/^SECTION/d' \
2744 -e '/^FILE/d' \
2745 -e 's/^[[:alpha:]]\+ \+//' \
2746 -e '/LOCAL/d' \
2747 -e 's/^[[:alpha:]]\+ \+//' \
2748 -e '/^HIDDEN [[:xdigit:]]\+ RT/bkeep-hidden' \
2749 -e '/^HIDDEN [[:xdigit:]]\+ g_[a-z0-9]*RT/bkeep-hidden' \
2750 -e '/^HIDDEN/d' \
2751 -e ':keep-hidden' \
2752 -e 's/^[[:alpha:]]\+ \+//' \
2753 -e '/^UND/d' \
2754 -e 's/^[[:digit:]]\+ \+//' \
2755 \
2756 -e '/^nocrt_/d' \
2757 -e '/^memchr/d' \
2758 -e '/^memcmp/d' \
2759 -e '/^memcpy/d' \
2760 -e '/^mempcpy/d' \
2761 -e '/^memmove/d' \
2762 -e '/^memset/d' \
2763 -e '/^strchr/d' \
2764 -e '/^strpbrk/d' \
2765 -e '/^_Z7strpbrk/d' \
2766 -e '/^strcmp/d' \
2767 -e '/^strcpy/d' \
2768 -e '/^strncpy/d' \
2769 -e '/^strlen/d' \
2770 -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
2771 -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
2772 \
2773 -e '/^_ZnwjPv/d' \
2774 -e '/^_ZnwmPv/d' \
2775 -e '/^_ZNSt9bad_allocC1Ev/d' \
2776 -e '/^_ZNSt9exceptionC2Ev/d' \
2777 -e '/^_ZNSt9exceptionC[12]ERKS_/d' \
2778 \
2779 -e '/^_ZN[a-zA-Z]*St[[:digit:]]*_*[lL]ist/d' \
2780 -e '/^_ZN[a-zA-Z]*[[:digit:]]*__gnu_cxx/d' \
2781 -e '/^_ZNSa.*ElementNode.*/d' \
2782 -e '/^_ZSt.*ElementNode.*/d' \
2783 \
2784 -e '/^_Z[[:digit:]]\+dbus/d' \
2785 -e '/^_Z13RTDBusLoadLibv/d' \
2786 \
2787 -e '/^VBoxHost_/d'\
2788 -e '/^VBoxGuest_/d'\
2789 | $(SED) -nf "$@"
2790 endif
2791 $(call MSG_L1,IPRT: Testing mangling using nm...)
2792 $(QUIET)nm $^ 2> /dev/null \
2793 | $(SED) -n \
2794 -e 's/^[0-9a-f][0-9a-f]* //' \
2795 -e '/^[TUDB] /!d' \
2796 -e 's/^. //' \
2797 $(if-expr "$(KBUILD_TARGET)" == "darwin" || "$(KBUILD_TARGET)" == "os2" || "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86", \
2798 -e 's/^_//',) \
2799 \
2800 -e '/^g_cchrt/d'\
2801 -e '/^g_frt/d'\
2802 -e '/^g_offrt/d'\
2803 -e '/^g_pfnrt/d'\
2804 -e '/^g_rt/d'\
2805 -e '/^g_szrt/d'\
2806 -e '/^g_ProcessSelf/d'\
2807 -e '/^g_u64ProgramStart/d'\
2808 -e '/^g_enmProcessPriority/d'\
2809 -e '/^g_hDbgModStrCache/d'\
2810 -e '/^g_pfnR0Darwin/d'\
2811 -e '/^g_pDarwinLockGroup/d'\
2812 \
2813 -e '/^RTDBusLoadLib/d' \
2814 \
2815 -e '/^RT/p' \
2816 -e '/^g_/p' \
2817 | $(SED) -nf "$@"
2818 endif
2819endif
2820 $(QUIET)$(APPEND) -t $@
2821
2822if !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_VALIDATIONKIT) && !defined(VBOX_ONLY_DOCS)
2823#
2824# Windows build tool.
2825#
2826BLDPROGS.win += ntBldSymDb
2827ntBldSymDb_TEMPLATE = VBoxAdvBldProg
2828ntBldSymDb_INCS = .
2829ntBldSymDb_SOURCES = r0drv/nt/ntBldSymDb.cpp
2830endif
2831
2832#
2833# Generate the rules (we're the to sub-makefile).
2834#
2835include $(FILE_KBUILD_SUB_FOOTER)
2836
2837
2838#
2839# Aliases for code templates.
2840#
2841rsa-template.o rsa-template.obj: rsa-core.o rsa-asn1-decoder.o rsa-sanity.o rsa-init.o
2842taf-template.o taf-template.obj: taf-core.o taf-asn1-decoder.o taf-sanity.o taf-init.o
2843x509-template.o x509-template.obj: x509-core.o x509-asn1-decoder.o x509-sanity.o x509-init.o
2844pkcs7-template.o pkcs7-template.obj: pkcs7-core.o pkcs7-asn1-decoder.o pkcs7-sanity.o pkcs7-init.o
2845
Note: See TracBrowser for help on using the repository browser.

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