VirtualBox

Changeset 15280 in vbox for trunk/src/recompiler_new


Ignore:
Timestamp:
Dec 10, 2008 8:02:51 PM (16 years ago)
Author:
vboxsync
Message:

recompiler_new/Makefile.kmk: EXTENDS_BY (missing S), general cleanup - hope I didn't break anything.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler_new/Makefile.kmk

    r15279 r15280  
    2323include $(KBUILD_PATH)/subheader.kmk
    2424
    25 # For 64-bit Windows we currently use gcc (due to MSVC unaware of such a novel
    26 # thing as C99, a lot of GCC extensions deployed by QEMU and calling convention
    27 # differences) to cross-compile code to Linux/ELF and dynamically generate invocation wrappers.
    28 if1of (win.amd64, $(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
    29  REM_MOD              = VBoxREM2
    30  SYSMODS              += VBoxREM2
    31 else
    32  REM_MOD              = VBoxREM
    33 endif
    34 
    35 TEMPLATE_DUMMY = dummy template (move to kBuild)
    36 ifeq ($(KBUILD_TARGET), win)
    37  $(REM_MOD)_TOOL.win.x86    = MINGW32
    38  $(REM_MOD)_TOOL.win.amd64  = XGCCAMD64LINUX
    39  $(REM_MOD)_TEMPLATE        = DUMMY
    40  $(REM_MOD)_SDKS.win.x86    = W32API
    41  $(REM_MOD)_ASFLAGS         = -x assembler-with-cpp
    42  $(REM_MOD)_CFLAGS          = -Wall -g -fno-omit-frame-pointer -fno-strict-aliasing
    43  $(REM_MOD)_CFLAGS.debug    = -O0
    44  $(REM_MOD)_CFLAGS.release += -fno-gcse -O2
    45  $(REM_MOD)_CFLAGS.profile  = $($(REM_MOD)_CFLAGS.release)
    46  $(REM_MOD)_CFLAGS.kprofile = $($(REM_MOD)_CFLAGS.release)
    47 
    48  IMPORT_LIBS          += VBoxREMImp
    49  DLLS                 += VBoxREM
    50 
    51  VBoxREM_LIBS           =   \
    52         $(LIB_VMM)          \
    53         $(LIB_RUNTIME)
    54 
    55  USE_REM_IMP = 1
    56 else
    57 
    58  # Just keep it here, if need to experiment with older compilers in the future
    59  TOOL_GCC3V3 = description
    60  TOOL_GCC3V3_EXTENDS = GCC3
    61  TOOL_GCC3V3_CC = $(firstword $(which gcc-4.2 gcc-4.1 gcc-3.4 gcc-3.4.6 gcc-3.3 gcc-3.3.6  gcc-3.2))
    62  TOOL_GCC3V3_COMPILE_C_DEPEND =
    63  TOOL_GCC3V3_COMPILE_C_DEPORD =
    64  TOOL_GCC3V3_COMPILE_C_OUTPUT =
    65  define TOOL_GCC3V3_COMPILE_C_CMDS
    66         $(QUIET)$(TOOL_GCC3V3_CC) -c\
     25#
     26# Globals
     27#
     28VBOX_PATH_RECOMPILER_SRC := $(PATH_SUB_CURRENT)
     29
     30TEMPLATE_DUMMY = dummy template (move to kBuild) ## @todo Will be there in the next update, remove this.
     31
     32if 0
     33 #
     34 # Template useful for forcing a specific gcc version in case it comes in handy.
     35 #
     36 TOOL_MYGCC = description
     37 TOOL_MYGCC_EXTENDS = GCC3
     38 TOOL_MYGCC_CC = $(firstword $(which gcc-4.2 gcc-4.1 gcc-3.4 gcc-3.4.6 gcc-3.3 gcc-3.3.6  gcc-3.2))
     39 TOOL_MYGCC_COMPILE_C_DEPEND =
     40 TOOL_MYGCC_COMPILE_C_DEPORD =
     41 TOOL_MYGCC_COMPILE_C_OUTPUT =
     42 define TOOL_MYGCC_COMPILE_C_CMDS
     43        $(QUIET)$(TOOL_MYGCC_CC) -c\
    6744                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    6845                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    7047                $(abspath $(source))
    7148 endef
    72  #target-i386/op_helper.c_TOOL = GCC3V3
    73 
    74  $(REM_MOD)_TEMPLATE  = VBOXR3NP
    75 
    76  IMPORT_LIBS          += VBoxREM
    77 endif
     49 #Usage: target-i386/op_helper.c_TOOL = MYGCC
     50endif
     51
     52# For 64-bit Windows we currently use gcc (due to MSVC unaware of such a novel
     53# thing as C99, a lot of GCC extensions deployed by QEMU and calling convention
     54# differences) to cross-compile code to Linux/ELF and dynamically generate invocation wrappers.
     55if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), win.amd64)
     56 REM_MOD := VBoxREM2
     57else
     58 REM_MOD := VBoxREM
     59endif
     60
    7861
    7962# VBOX_WITH_64_BITS_GUESTS = 1
    8063
    81 # For 32-bit targets when enabled 64-bit guests we build 2 REM DLLs: 
     64# For 32-bit targets when enabled 64-bit guests we build 2 REM DLLs:
    8265#  with 64-bit support (slow and buggy at the moment) VBOXREM64
    8366#  only 32-bit support (faster, stable, but not suitable for 64-bit guests) VBOXREM
     
    9174endif
    9275
    93 OTHER_CLEAN          +=
    94 
    95 #
    96 # Globals
    97 #
    98 VBOX_PATH_RECOMPILER_SRC := $(PATH_SUB_CURRENT)
    99 
     76
     77#
     78# Target lists (some of them anyways).
     79#
     80ifeq ($(REM_MOD),VBoxREM2)
     81 SYSMODS     += VBoxREM2
     82endif
     83ifeq ($(KBUILD_TARGET),win)
     84 DLLS        += VBoxREM
     85else
     86 ## @todo this is wrong, proper DLLS are DLLS not IMPORT_LIBS. nice try ;-)
     87 IMPORT_LIBS += VBoxREM
     88endif
     89
     90
     91#
    10092# The VBoxREM.[dll|so|..] or VBoxREM2.rel.
    10193#
    102 $(REM_MOD)_DEFS             = IN_REM_R3 REM_INCLUDE_CPU_H
    103 $(REM_MOD)_DEFS            += REM_PHYS_ADDR_IN_TLB
    104 $(REM_MOD)_DEFS            += VBOX_WITH_NEW_RECOMPILER
     94ifeq ($(KBUILD_TARGET),win)
     95$(REM_MOD)_TEMPLATE        = DUMMY
     96$(REM_MOD)_TOOL.win.x86    = MINGW32
     97$(REM_MOD)_TOOL.win.amd64  = XGCCAMD64LINUX
     98$(REM_MOD)_SDKS.win.x86    = W32API
     99$(REM_MOD)_ASFLAGS         = -x assembler-with-cpp
     100$(REM_MOD)_CFLAGS          = -Wall -g -fno-omit-frame-pointer -fno-strict-aliasing
     101$(REM_MOD)_CFLAGS.debug    = -O0
     102$(REM_MOD)_CFLAGS.release += -fno-gcse -O2
     103$(REM_MOD)_CFLAGS.profile  = $($(REM_MOD)_CFLAGS.release)
     104VBoxREM_LIBS               = \
     105        $(LIB_VMM) \
     106        $(LIB_RUNTIME)
     107$(REM_MOD)_DEFS           += IN_RING3 $(ARCH_BITS_DEFS)
     108# Temporary hack, to allow running with oldish GCC
     109$(REM_MOD)_DEFS.win.x86   += GCC_WITH_BUGGY_REGPARM
     110else  # !win
     111$(REM_MOD)_TEMPLATE        = VBOXR3NP
     112$(REM_MOD)_DEFS            =
     113endif # !win
     114$(REM_MOD)_DEFS           += IN_REM_R3 REM_INCLUDE_CPU_H
     115$(REM_MOD)_DEFS           += REM_PHYS_ADDR_IN_TLB
     116$(REM_MOD)_DEFS           += VBOX_WITH_NEW_RECOMPILER
    105117#$(REM_MOD)_DEFS           += DEBUG_ALL_LOGGING DEBUG_DISAS DEBUG_PCALL DEBUG_EXEC DEBUG_FLUSH DEBUG_IOPORT DEBUG_SIGNAL DEBUG_TLB_CHECK DEBUG_TB_INVALIDATE DEBUG_TLB  # Enables huge amounts of debug logging.
    106118$(REM_MOD)_DEFS.linux      = _GNU_SOURCE
    107119ifdef VBOX_SOLARIS_10
    108  $(REM_MOD)_DEFS.solaris = HOST_SOLARIS=10
    109 else
    110  $(REM_MOD)_DEFS.solaris = HOST_SOLARIS=11
    111 endif
    112 
    113 $(REM_MOD)_INCS             =    \
    114         Sun                       \
    115         target-i386               \
    116         tcg                       \
    117         fpu                       \
    118         $(PATH_$(REM_MOD))        \
     120 $(REM_MOD)_DEFS.solaris   = HOST_SOLARIS=10
     121else
     122 $(REM_MOD)_DEFS.solaris   = HOST_SOLARIS=11
     123endif
     124
     125$(REM_MOD)_INCS            = \
     126        Sun \
     127        target-i386 \
     128        tcg \
     129        fpu \
     130        $(PATH_$(REM_MOD)) \
    119131        $(PATH_ROOT)/src/VBox/VMM \
    120132        .
    121133
    122 $(REM_MOD)_SOURCES          =   \
    123         VBoxRecompiler.c        \
    124         cpu-exec.c              \
    125         exec.c                  \
    126         translate-all.c         \
    127         host-utils.c            \
    128         cutils.c                \
    129         tcg/tcg.c               \
    130         tcg/tcg-dyngen.c        \
    131         tcg/tcg-runtime.c       \
    132         fpu/softfloat-native.c  \
     134$(REM_MOD)_SOURCES         = \
     135        VBoxRecompiler.c \
     136        cpu-exec.c \
     137        exec.c \
     138        translate-all.c \
     139        host-utils.c \
     140        cutils.c \
     141        tcg/tcg.c \
     142        tcg/tcg-dyngen.c \
     143        tcg/tcg-runtime.c \
     144        fpu/softfloat-native.c \
    133145        target-i386/op_helper.c \
    134         target-i386/helper.c    \
     146        target-i386/helper.c \
    135147        target-i386/translate.c
    136148
    137149ifeq ($(KBUILD_TARGET_ARCH),amd64)
    138  $(REM_MOD)_DEFS             += __x86_64__
    139  $(REM_MOD)_INCS             +=  tcg/x86_64
    140 else
    141  $(REM_MOD)_DEFS             += __i386__
    142  $(REM_MOD)_INCS             +=  tcg/i386
    143 endif
    144 
    145 $(REM_MOD)_SOURCES.debug += \
     150 $(REM_MOD)_DEFS          += __x86_64__
     151 $(REM_MOD)_INCS          +=  tcg/x86_64
     152else
     153 $(REM_MOD)_DEFS          += __i386__
     154 $(REM_MOD)_INCS          +=  tcg/i386
     155endif
     156
     157$(REM_MOD)_SOURCES.debug  += \
    146158        Sun/testmath.c
    147 $(REM_MOD)_SOURCES.win.x86  = $(REM_MOD).def
     159$(REM_MOD)_SOURCES.win.x86 = $(REM_MOD).def
    148160ifneq ($(REM_MOD),VBoxREM2)
    149  $(REM_MOD)_POST_CMDS       = $(VBOX_SIGN_IMAGE_CMDS)
    150 endif
    151 
     161 $(REM_MOD)_POST_CMDS      = $(VBOX_SIGN_IMAGE_CMDS)
     162endif
    152163ifeq ($(REM_MOD),VBoxREM2)
    153 #
    154 # The VBoxREM2 wrapper.
    155 #
    156 VBoxREM_TEMPLATE       = VBOXR3
    157 VBoxREM_DEFS           = IN_REM_R3 $(if $(VBOX_WITH_VMI),VBOX_WITH_VMI,)
    158 VBoxREM_DEFS          += VBOX_WITH_NEW_RECOMPILER
    159 VBoxREM_SOURCES        =   \
    160         VBoxREMWrapper.cpp \
    161         VBoxREMWrapperA.asm
    162 
     164## @todo spread out where it belongs.
    163165$(REM_MOD)_TEMPLATE        = VBOXNOCRTGAS
    164166$(REM_MOD)_DEFS           += LOG_USE_C99 $(ARCH_BITS_DEFS)
     
    170172$(REM_MOD)_INCS           += \
    171173        Sun/crt
    172 $(REM_MOD)_LIBS           = \
     174$(REM_MOD)_LIBS            = \
    173175        $(PATH_LIB)/RuntimeR3NoCRTGCC$(VBOX_SUFF_LIB)
    174 $(REM_MOD)_SYSSUFF        = .rel
    175 
    176 endif
    177 
    178 $(REM_MOD)_CFLAGS.profile  = $($(REM_MOD)_CFLAGS.release)
    179 $(REM_MOD)_CFLAGS.kprofile = $($(REM_MOD)_CFLAGS.release)
    180 
    181 $(REM_MOD)_DEFS           += IN_RING3 $(ARCH_BITS_DEFS)
    182 #$(REM_MOD)_DEFS          += DEBUG_DISAS DEBUG_PCALL DEBUG_EXEC DEBUG_FLUSH DEBUG_IOPORT DEBUG_SIGNAL DEBUG_TLB_CHECK DEBUG_TB_INVALIDATE DEBUG_TLB  # Enables huge amounts of debug logging.
    183 
     176$(REM_MOD)_SYSSUFF         = .rel
     177endif
     178
     179## @todo clean up this, there are some duplicates with the template here I think.
    184180$(REM_MOD)_LDFLAGS.darwin  = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/$(REM_MOD).dylib -undefined dynamic_lookup
    185181$(REM_MOD)_LDFLAGS.l4      = -T$(L4_LIBDIR)/../main_rel.ld -nostdlib -Wl,--no-undefined
     
    189185$(REM_MOD)_LDFLAGS.solaris = -mimpure-text
    190186
    191 # Temporary hack, to allow running with oldish GCC
    192 $(REM_MOD)_DEFS.win.x86   += GCC_WITH_BUGGY_REGPARM
     187
     188ifeq ($(REM_MOD),VBoxREM2)
     189#
     190# The VBoxREM2 wrapper.
     191#
     192VBoxREM_TEMPLATE           = VBOXR3
     193VBoxREM_DEFS               = IN_REM_R3 $(if $(VBOX_WITH_VMI),VBOX_WITH_VMI,)
     194VBoxREM_DEFS              += VBOX_WITH_NEW_RECOMPILER
     195VBoxREM_SOURCES            = \
     196        VBoxREMWrapper.cpp \
     197        VBoxREMWrapperA.asm
     198endif
    193199
    194200
    195201ifdef USE_VBOXREM64
    196  # Currently we never mix USE_VBOXREM64 and VBoxREM2, so can always use VBoxREM
    197  # @todo: assert for that? use $(REM_MOD) instead?
    198  # But loading logic got to be updated too.
    199  ifeq ($(KBUILD_TARGET), win)
    200   DLL                  += VBoxREM64
    201  else
    202   IMPORT_LIBS          += VBoxREM64
    203  endif
    204  VBoxREM64_EXTENDS = $(REM_MOD)
    205  VBoxREM64_EXTEND_BY = appending
    206  VBoxREM64_DEFS := $($(REM_MOD)_DEFS) VBOX_ENABLE_VBOXREM64
    207 endif
    208 
    209 ifdef USE_REM_IMP
     202#
     203# The VBoxREM64 module, for targeting 64-bit guests on 32-bit systems.
     204#
     205# Currently we never mix USE_VBOXREM64 and VBoxREM2, so can always use VBoxREM
     206## @todo: assert for that? use $(REM_MOD) instead?
     207# But loading logic got to be updated too.
     208ifeq ($(KBUILD_TARGET), win)
     209 DLL                      += VBoxREM64
     210else
     211 ## @todo see comment above.
     212 IMPORT_LIBS              += VBoxREM64
     213endif
     214VBoxREM64_EXTENDS          = $(REM_MOD)
     215VBoxREM64_EXTENDS_BY       = appending
     216VBoxREM64_DEFS             = VBOX_ENABLE_VBOXREM64
     217endif # USE_VBOXREM64
     218
     219
     220if1of ($(KBUILD_TARGET), os2 win)
    210221#
    211222# The VBoxREM import library.
     
    215226# won't be built until after all the other DLLs.
    216227#
    217 VBoxREMImp_TEMPLATE         = VBOXR3
     228IMPORT_LIBS += VBoxREMImp
     229VBoxREMImp_TEMPLATE        = VBOXR3
    218230 if1of ($(KBUILD_TARGET), os2 win)
    219 VBoxREMImp_INST             = $(INST_LIB)
     231VBoxREMImp_INST            = $(INST_LIB)
    220232 else
    221 VBoxREMImp_NAME             = VBoxREM
    222 VBoxREMImp_INST             = $(INST_LIB)
    223  endif
    224 VBoxREMImp_SOURCES.win      = VBoxREM.def
    225 VBoxREMImp_SOURCES.os2      = $(PATH_VBoxREMImp)/VBoxREMOS2.def
     233VBoxREMImp_NAME            = VBoxREM
     234VBoxREMImp_INST            = $(INST_LIB)
     235 endif
     236VBoxREMImp_SOURCES.win     = VBoxREM.def
     237VBoxREMImp_SOURCES.os2     = $(PATH_VBoxREMImp)/VBoxREMOS2.def
    226238 ifeq ($(filter win os2,$(KBUILD_TARGET)),)
    227 VBoxREMImp_SOURCES          = $(PATH_VBoxREMImp)/VBoxREMImp.c
    228 VBoxREMImp_CLEAN            = $(PATH_VBoxREMImp)/VBoxREMImp.c
     239VBoxREMImp_SOURCES         = $(PATH_VBoxREMImp)/VBoxREMImp.c
     240VBoxREMImp_CLEAN           = $(PATH_VBoxREMImp)/VBoxREMImp.c
    229241 endif
    230242 ifneq ($(filter-out darwin os2 win,$(KBUILD_TARGET)),)
    231 VBoxREMImp_SONAME           = VBoxREM$(SUFF_DLL)
    232  endif
    233 VBoxREMImp_LDFLAGS.l4       = -T$(L4_LIBDIR)/../main_rel.ld -nostdlib
     243VBoxREMImp_SONAME          = VBoxREM$(SUFF_DLL)
     244 endif
     245VBoxREMImp_LDFLAGS.l4      = -T$(L4_LIBDIR)/../main_rel.ld -nostdlib
    234246
    235247$$(PATH_VBoxREMImp)/VBoxREMImp.c: $(VBOX_PATH_RECOMPILER_SRC)/VBoxREM.def $(VBOX_PATH_RECOMPILER_SRC)/Sun/deftoimp.sed $(MAKEFILE_CURRENT) | $$(dir $$@)
     
    252264endif # USE_REM_IMP
    253265
     266
    254267#
    255268# The math testcase as a standalone program for testing and debugging purposes.
Note: See TracChangeset for help on using the changeset viewer.

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