Changeset 14021 in vbox
- Timestamp:
- Nov 10, 2008 4:31:22 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 14 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Config.kmk
r14003 r14021 1166 1166 LIB_DDU = $(PATH_BIN)/VBoxDDU.dll 1167 1167 LIB_SETTINGS = $(PATH_BIN)/VBoxSett.dll 1168 OBJ_SYS0= $(PATH_OBJ)/RuntimeR0/os2/sys0.obj1168 VBOX_OBJ_SYS0 = $(PATH_OBJ)/RuntimeR0/os2/sys0.obj 1169 1169 endif 1170 1170 ifeq ($(KBUILD_TARGET),win) … … 1921 1921 TEMPLATE_VBOXGC_LIBS = \ 1922 1922 $(VBOX_GCC32_LIBGCC) \ 1923 $( OBJ_SYS0) \1923 $(VBOX_OBJ_SYS0) \ 1924 1924 end 1925 1925 endif … … 1969 1969 TEMPLATE_VBOXR0_ASTOOL = $(VBOX_ASTOOL) 1970 1970 TEMPLATE_VBOXR0_ASFLAGS = $(VBOX_ASFLAGS) 1971 TEMPLATE_VBOXR0_DEFS = IN_RING0 IN_RING0_AGNOSTIC $(ARCH_BITS_DEFS) 1971 TEMPLATE_VBOXR0_DEFS = IN_RING0 IN_RING0_AGNOSTIC IPRT_NO_CRT $(ARCH_BITS_DEFS) 1972 TEMPLATE_VBOXR0_INCS = $(PATH_ROOT)/include/iprt/nocrt 1972 1973 1973 1974 ifeq ($(VBOX_LDR_FMT),pe) … … 1980 1981 TEMPLATE_VBOXR0_CFLAGS = $(TEMPLATE_VBOXR0_CXXFLAGS) 1981 1982 TEMPLATE_VBOXR0_LDFLAGS = -Driver -Subsystem:NATIVE -Incremental:NO -Align:64 -MapInfo:Exports -NoD 1982 ifdef VBOX_USE_VCC80 1983 TEMPLATE_VBOXR0_LIBS.x86 = \ 1983 TEMPLATE_VBOXR0_LIBS.x86 = \ 1984 1984 $(PATH_SDK_W2K3DDKX86_LIB)/int64.lib 1985 else1986 TEMPLATE_VBOXR0_LIBS.x86 = \1987 $(PATH_TOOL_VCC70_LIB)/libcmt.lib # for 64-bit int1988 endif1989 1985 endif # pe 1990 1986 1991 1987 ifeq ($(VBOX_LDR_FMT),elf) 1992 1988 TEMPLATE_VBOXR0_TOOL = $(VBOX_GCC_TOOL) 1993 TEMPLATE_VBOXR0_CFLAGS = - g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden)1994 TEMPLATE_VBOXR0_CXXFLAGS = - g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-rtti -fno-exceptions $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden)1989 TEMPLATE_VBOXR0_CFLAGS = -nostdinc -g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) 1990 TEMPLATE_VBOXR0_CXXFLAGS = -nostdinc -g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-rtti -fno-exceptions $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) 1995 1991 TEMPLATE_VBOXR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding 1996 1992 TEMPLATE_VBOXR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables … … 2012 2008 TEMPLATE_VBOXR0_TOOL = GXX4MACHO 2013 2009 TEMPLATE_VBOXR0_DEFS += $(VBOX_DARWIN_DEF_SDK_DEFS) 2014 TEMPLATE_VBOXR0_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) - g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-common -msoft-float -static -fno-rtti -fno-exceptions $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing2015 TEMPLATE_VBOXR0_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) - g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-common -msoft-float -static -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing2010 TEMPLATE_VBOXR0_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -nostdinc -g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-common -msoft-float -static -fno-rtti -fno-exceptions $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing 2011 TEMPLATE_VBOXR0_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -nostdinc -g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-common -msoft-float -static -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing 2016 2012 TEMPLATE_VBOXR0_LDFLAGS = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -nostdlib 2017 2013 #TEMPLATE_VBOXR0_LDFLAGS.release = -Wl,-S ??? … … 2020 2016 ifeq ($(VBOX_LDR_FMT),lx) 2021 2017 TEMPLATE_VBOXR0_TOOL = GXX3OMF 2022 TEMPLATE_VBOXR0_CFLAGS = - g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing2023 TEMPLATE_VBOXR0_CXXFLAGS = - g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-rtti -fno-exceptions $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing2024 TEMPLATE_VBOXR0_LDFLAGS = - Zdll -nostdlib2018 TEMPLATE_VBOXR0_CFLAGS = -nostdinc -g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -Wmissing-prototypes -Wstrict-prototypes $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing 2019 TEMPLATE_VBOXR0_CXXFLAGS = -nostdinc -g -pipe $(VBOX_GCC_PEDANTIC) $(VBOX_GCC_Wno-variadic-macros) -fno-rtti -fno-exceptions $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing 2020 TEMPLATE_VBOXR0_LDFLAGS = -nostdlib -Zdll 2025 2021 TEMPLATE_VBOXR0_LIBS = \ 2026 2022 $(VBOX_GCC_LIBGCC) \ 2027 $( OBJ_SYS0) \2023 $(VBOX_OBJ_SYS0) \ 2028 2024 end 2029 2025 endif -
trunk/include/VBox/VBoxGuest.h
r13578 r14021 1031 1031 1032 1032 1033 /** 1034 *VBoxGuest IOCTL codes and structures.1033 #if !defined(IN_RC) && !defined(IN_RING0_AGNOSTIC) && !defined(IPRT_NO_CRT) 1034 /** @name VBoxGuest IOCTL codes and structures. 1035 1035 * 1036 1036 * The range 0..15 is for basic driver communication. … … 1172 1172 #define VBOXGUEST_IOCTL_CANCEL_ALL_WAITEVENTS VBOXGUEST_IOCTL_CODE(5, 0) 1173 1173 1174 /** 1175 * Result codes for VBoxGuestWaitEventInfo::u32Result 1174 /** @name Result codes for VBoxGuestWaitEventInfo::u32Result 1176 1175 * @{ 1177 1176 */ … … 1478 1477 1479 1478 /** @} */ 1479 #endif /* !defined(IN_RC) && !defined(IN_RING0_AGNOSTIC) && !defined(IPRT_NO_CRT) */ 1480 1480 1481 1481 -
trunk/include/iprt/asmdefs.mac
r13832 r14021 603 603 %endif 604 604 605 ;; @def RT_NOCRT_BEGINPROC 606 ; Starts a NOCRT procedure, taking care of name wrapping and aliasing. 607 ; 608 ; Aliasing (weak ones, if supported) will be created when RT_WITH_NOCRT_ALIASES 609 ; is defined and RT_WITHOUT_NOCRT_WRAPPERS isn't. 610 ; 611 %macro RT_NOCRT_BEGINPROC 1 612 %ifdef RT_WITH_NOCRT_ALIASES 613 BEGINPROC RT_NOCRT(%1) 614 %ifdef ASM_FORMAT_ELF 615 global NAME(%1) 616 weak NAME(%1) 617 NAME(%1): 618 %else 619 GLOBALNAME %1 620 %endif 621 %else ; !RT_WITH_NOCRT_ALIASES 622 BEGINPROC RT_NOCRT(%1) 623 %endif ; !RT_WITH_NOCRT_ALIASES 624 %endmacro ; RT_NOCRT_BEGINPROC 625 626 %ifdef RT_WITH_NOCRT_ALIASES 627 %ifdef RT_WITHOUT_NOCRT_WRAPPERS 628 %error "RT_WITH_NOCRT_ALIASES and RT_WITHOUT_NOCRT_WRAPPERS doesn't mix." 629 %endif 630 %endif 631 605 632 606 633 -
trunk/src/VBox/Devices/testcase/tstDeviceStructSizeGC.cpp
r13989 r14021 64 64 # include "../USB/DevEHCI.cpp" 65 65 #endif 66 #undef LOG_GROUP67 #include "../VMMDev/VBoxDev.cpp" 66 /*#undef LOG_GROUP 67 #include "../VMMDev/VBoxDev.cpp"*/ 68 68 #undef LOG_GROUP 69 69 #include "../Parallel/DevParallel.cpp" -
trunk/src/VBox/Runtime/Makefile.kmk
r13908 r14021 853 853 # 854 854 RuntimeR0_TEMPLATE = VBOXR0 855 RuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITH OUT_NOCRT_WRAPPERS855 RuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITH_NOCRT_ALIASES 856 856 RuntimeR0_INCS = include 857 857 RuntimeR0_SOURCES = \ … … 870 870 common/misc/sanity-c.c \ 871 871 common/misc/sanity-cpp.cpp \ 872 common/string/memchr.cpp \873 common/string/memcmp.cpp \874 common/string/memcpy.cpp \875 common/string/memmove.asm \876 common/string/memset.cpp \877 common/string/strcmp.asm \878 common/string/strcpy.cpp \879 872 common/string/strformat.cpp \ 880 873 common/string/strformatrt.cpp \ 881 874 common/string/strformattype.cpp \ 882 common/string/strlen.asm \883 875 common/string/strncmp.cpp \ 884 876 common/string/strpbrk.cpp \ … … 901 893 VBox/strformat-vbox.cpp 902 894 903 #if1of ($(KBUILD_TARGET_ARCH),amd64 x86) 904 # RuntimeR0_SOURCES += common/time/timesupA.asm 905 #else 906 RuntimeR0_SOURCES += common/time/timesupref.cpp 907 #endif 908 909 RuntimeR0_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES) 910 RuntimeR0_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES) 911 912 RuntimeR0_SOURCES.os2 =\913 os2/RTErrConvertFromOS2.cpp\914 os2/sys0.asm915 916 if eq ($(filter-out darwin solaris freebsd,$(KBUILD_TARGET)),)895 RuntimeR0_SOURCES += \ 896 common/misc/setjmp.asm \ 897 common/string/memchr.asm \ 898 common/string/memcmp.asm \ 899 common/string/memcpy.asm \ 900 common/string/mempcpy.asm \ 901 common/string/memmove.asm \ 902 common/string/memset.asm \ 903 common/string/strchr.asm \ 904 common/string/strcpy.asm \ 905 common/string/strcmp.asm \ 906 common/string/strlen.asm 907 908 if1of ($(KBUILD_TARGET), darwin solaris freebsd) 917 909 RuntimeR0_SOURCES += \ 918 910 common/math/gcc/adddi3.c \ … … 937 929 endif 938 930 939 940 common/string/memchr.cpp_CXXFLAGS.win = -Oi- 941 common/string/memcmp.cpp_CXXFLAGS.win = -Oi- 942 common/string/memcpy.cpp_CXXFLAGS.win = -Oi- 943 common/string/memset.cpp_CXXFLAGS.win = -Oi- 944 common/string/strcpy.cpp_CXXFLAGS.win = -Oi- 945 common/string/strlen.cpp_CXXFLAGS.win = -Oi- 931 #if1of ($(KBUILD_TARGET_ARCH),amd64 x86) 932 # RuntimeR0_SOURCES += common/time/timesupA.asm 933 #else 934 RuntimeR0_SOURCES += common/time/timesupref.cpp 935 #endif 936 937 RuntimeR0_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES) 938 RuntimeR0_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES) 939 940 RuntimeR0_SOURCES.os2 = \ 941 os2/RTErrConvertFromOS2.cpp \ 942 os2/sys0.asm 943 946 944 947 945 # … … 1427 1425 endif 1428 1426 1427 # Only used in GC... 1428 common/string/memchr.cpp_CXXFLAGS.win = -Oi- 1429 common/string/memcmp.cpp_CXXFLAGS.win = -Oi- 1430 common/string/memcpy.cpp_CXXFLAGS.win = -Oi- 1431 common/string/memset.cpp_CXXFLAGS.win = -Oi- 1432 common/string/strcpy.cpp_CXXFLAGS.win = -Oi- 1433 common/string/strlen.cpp_CXXFLAGS.win = -Oi- 1434 1435 1429 1436 1430 1437 # -
trunk/src/VBox/Runtime/common/string/memchr.asm
r8256 r14021 37 37 ; @param ch gcc: esi msc: edx x86:[esp+8] 38 38 ; @param cb gcc: rdx msc: r8 x86:[esp+0ch] 39 BEGINPROC RT_NOCRT(memchr) 39 RT_NOCRT_BEGINPROC memchr 40 40 cld 41 41 %ifdef RT_ARCH_AMD64 -
trunk/src/VBox/Runtime/common/string/memcmp.asm
r8256 r14021 37 37 ; @param pv2 gcc: rsi msc: rdx x86:[esp+8] 38 38 ; @param cb gcc: rdx msc: r8 x86:[esp+0ch] 39 BEGINPROC RT_NOCRT(memcmp) 39 RT_NOCRT_BEGINPROC memcmp 40 40 cld 41 41 xor eax, eax -
trunk/src/VBox/Runtime/common/string/memcpy.asm
r8256 r14021 37 37 ; @param pvSrc gcc: rsi msc: rdx x86:[esp+8] 38 38 ; @param cb gcc: rdx msc: r8 x86:[esp+0ch] 39 BEGINPROC RT_NOCRT(memcpy) 39 RT_NOCRT_BEGINPROC memcpy 40 40 cld 41 41 -
trunk/src/VBox/Runtime/common/string/memmove.asm
r8256 r14021 37 37 ; @param pvSrc gcc: rsi msc: rdx x86:[esp+8] 38 38 ; @param cb gcc: rdx msc: r8 x86:[esp+0ch] 39 BEGINPROC RT_NOCRT(memmove) 39 RT_NOCRT_BEGINPROC memmove 40 40 ; Prolog. 41 41 %ifdef RT_ARCH_AMD64 -
trunk/src/VBox/Runtime/common/string/mempcpy.asm
r8256 r14021 37 37 ; @param pvSrc gcc: rsi msc: rdx x86:[esp+8] 38 38 ; @param cb gcc: rdx msc: r8 x86:[esp+0ch] 39 BEGINPROC RT_NOCRT(mempcpy) 39 RT_NOCRT_BEGINPROC mempcpy 40 40 cld ; paranoia 41 41 -
trunk/src/VBox/Runtime/common/string/memset.asm
r8256 r14021 37 37 ; @param ch gcc: esi msc: edx x86:[esp+8] 38 38 ; @param cb gcc: rdx msc: r8 x86:[esp+0ch] 39 BEGINPROC RT_NOCRT(memset) 39 RT_NOCRT_BEGINPROC memset 40 40 cld 41 41 %ifdef RT_ARCH_AMD64 -
trunk/src/VBox/Runtime/common/string/strchr.asm
r8256 r14021 36 36 ; @param psz gcc: rdi msc: rcx x86:[esp+4] 37 37 ; @param ch gcc: esi msc: edx x86:[esp+8] 38 BEGINPROC RT_NOCRT(strchr) 38 RT_NOCRT_BEGINPROC strchr 39 39 cld 40 40 -
trunk/src/VBox/Runtime/common/string/strcmp.asm
r14017 r14021 36 36 ; @param psz1 gcc: rdi msc: rcx x86:[esp+4] 37 37 ; @param psz2 gcc: rsi msc: rdx x86:[esp+8] 38 BEGINPROC RT_NOCRT(strcmp) 38 RT_NOCRT_BEGINPROC strcmp 39 39 ; input 40 40 %ifdef RT_ARCH_AMD64 -
trunk/src/VBox/Runtime/common/string/strcpy.asm
r13991 r14021 1 1 ; $Id$ 2 2 ;; @file 3 ; IPRT - No-CRT strc mp- AMD64 & X86.3 ; IPRT - No-CRT strcpy - AMD64 & X86. 4 4 ; 5 5 … … 36 36 ; @param psz1 gcc: rdi msc: rcx x86:[esp+4] 37 37 ; @param psz2 gcc: rsi msc: rdx x86:[esp+8] 38 BEGINPROC RT_NOCRT(strcmp) 38 RT_NOCRT_BEGINPROC strcpy 39 39 ; input 40 40 %ifdef RT_ARCH_AMD64 … … 46 46 %define psz2 rsi 47 47 %endif 48 mov r8, psz1 48 49 %else 49 50 mov ecx, [esp + 4] … … 51 52 %define psz1 ecx 52 53 %define psz2 edx 54 push psz1 53 55 %endif 54 56 … … 58 60 .next: 59 61 mov al, [psz1] 60 mov ah, [psz2] 61 cmp al, ah 62 jne .not_equal 62 mov [psz2], al 63 63 test al, al 64 jz . equal64 jz .done 65 65 66 66 mov al, [psz1 + 1] 67 mov ah, [psz2 + 1] 68 cmp al, ah 69 jne .not_equal 67 mov [psz2 + 1], al 70 68 test al, al 71 jz .equal 72 inc psz1 73 inc psz2 69 jz .done 74 70 75 71 mov al, [psz1 + 2] 76 mov ah, [psz2 + 2] 77 cmp al, ah 78 jne .not_equal 72 mov [psz2 + 2], al 79 73 test al, al 80 jz .equal 81 inc psz1 82 inc psz2 74 jz .done 83 75 84 76 mov al, [psz1 + 3] 85 mov ah, [psz2 + 3] 86 cmp al, ah 87 jne .not_equal 77 mov [psz2 + 3], al 88 78 test al, al 89 jz . equal79 jz .done 90 80 91 81 add psz1, 4 … … 93 83 jmp .next 94 84 95 .equal: 96 xor eax, eax 85 .done: 86 %ifdef RT_ARCH_AMD64 87 mov rax, r8 88 %else 89 pop eax 90 %endif 97 91 ret 92 ENDPROC RT_NOCRT(strcpy) 98 93 99 .not_equal:100 movzx ecx, ah101 and eax, 0ffh102 sub eax, ecx103 ret104 ENDPROC RT_NOCRT(strcmp)105 -
trunk/src/VBox/Runtime/common/string/strcpy_alias.c
r13991 r14021 1 1 /* $Id$ */ 2 2 /** @file 3 * IPRT - No-CRT strc mp() alias for gcc.3 * IPRT - No-CRT strcpy() alias for gcc. 4 4 */ 5 5 … … 34 34 *******************************************************************************/ 35 35 #include <iprt/nocrt/string.h> 36 #undef strc mp36 #undef strcpy 37 37 38 38 #if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS) 39 39 # ifndef __MINGW32__ 40 # pragma weak strc mp40 # pragma weak strcpy 41 41 # endif 42 42 43 43 /* No alias support here (yet in the ming case). */ 44 extern int (strcmp)(constchar *psz1, const char *psz2)44 extern char * (strcpy)(char *psz1, const char *psz2) 45 45 { 46 return RT_NOCRT(strc mp)(psz1, psz2);46 return RT_NOCRT(strcpy)(psz1, psz2); 47 47 } 48 48 49 49 #elif __GNUC__ >= 4 50 50 /* create a weak alias. */ 51 __asm__(".weak strcmp\t\n" 52 " .set strcmp," RT_NOCRT_STR(strcmp) "\t\n"); 51 __asm__(".weak strcpy\t\n" 52 " .set strcpy," RT_NOCRT_STR(strcpy) "\t\n" 53 ".global strcpy\t\n" 54 ); 53 55 #else 54 56 /* create a weak alias. */ 55 extern __typeof(RT_NOCRT(strc mp)) strcmp __attribute__((weak, alias(RT_NOCRT_STR(strcmp))));57 extern __typeof(RT_NOCRT(strcpy)) strcpy __attribute__((weak, alias(RT_NOCRT_STR(strcpy)))); 56 58 #endif 57 59 -
trunk/src/VBox/Runtime/common/string/strlen.asm
r9502 r14021 35 35 ;; 36 36 ; @param psz gcc: rdi msc: rcx x86: [esp+4] 37 BEGINPROC RT_NOCRT(strlen) 37 RT_NOCRT_BEGINPROC strlen 38 38 cld 39 39 %ifdef RT_ARCH_AMD64
Note:
See TracChangeset
for help on using the changeset viewer.