Ignore:
Timestamp:
May 27, 2007, 6:45:22 PM (18 years ago)
Author:
bird
Message:

GCC -> GXX. (the GCC is going to do plain C linking using gcc instead of g++ to fix these incorrect dependencies on the C++ RT when linking C progs.)

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/tools/GXX32.kmk

    r965 r971  
    22## @file
    33#
    4 # kBuild Tool Config - Generic 32-bit GCC v3.2.x or later Using The System GCC.
     4# kBuild Tool Config - Generic 32-bit GCC v3.2.x or later using the system GCC, for building C++ code.
    55#
    66# Copyright (c) 2004-2007 knut st. osmundsen <bird-kBuild-spam@anduin.net>
     
    2525#
    2626
    27 TOOL_GCC32 := Generic 32-bit GCC v3.2.x or later Using The System GCC. \
     27TOOL_GXX32 := Generic 32-bit GCC v3.2.x or later using the system GCC, for building C++ code. \
    2828        More or less Linux/ELF specfic.
    2929
    3030# Tool Specific Properties
    31 TOOL_GCC32_CC  ?= gcc$(HOSTSUFF_EXE) -m32
    32 TOOL_GCC32_CXX ?= g++$(HOSTSUFF_EXE) -m32
    33 TOOL_GCC32_AS  ?= gcc$(HOSTSUFF_EXE) -m32
    34 TOOL_GCC32_AR  ?= ar$(HOSTSUFF_EXE)
    35 TOOL_GCC32_LD  ?= g++$(HOSTSUFF_EXE) -m32
    36 TOOL_GCC32_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
    37 ifndef TOOL_GCC32_LDFLAGS.$(BUILD_TARGET)
    38 TOOL_GCC32_LDFLAGS.dll ?= -shared
    39 else
    40 TOOL_GCC32_LDFLAGS.dll ?= $(TOOL_GCC32_LDFLAGS.$(BUILD_TARGET))
    41 endif
    42 TOOL_GCC32_LDFLAGS.sysmod ?= -r -m elf_i386
    43 TOOL_GCC32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
     31TOOL_GXX32_CC  ?= gcc$(HOSTSUFF_EXE) -m32
     32TOOL_GXX32_CXX ?= g++$(HOSTSUFF_EXE) -m32
     33TOOL_GXX32_AS  ?= gcc$(HOSTSUFF_EXE) -m32
     34TOOL_GXX32_AR  ?= ar$(HOSTSUFF_EXE)
     35TOOL_GXX32_LD  ?= g++$(HOSTSUFF_EXE) -m32
     36TOOL_GXX32_LD_SYSMOD ?= ld$(HOSTSUFF_EXE)
     37ifndef TOOL_GXX32_LDFLAGS.$(BUILD_TARGET)
     38TOOL_GXX32_LDFLAGS.dll ?= -shared
     39else
     40TOOL_GXX32_LDFLAGS.dll ?= $(TOOL_GXX32_LDFLAGS.$(BUILD_TARGET))
     41endif
     42TOOL_GXX32_LDFLAGS.sysmod ?= -r -m elf_i386
     43TOOL_GXX32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
    4444ifeq ($(BUILD_TARGET),os2)
    45 TOOL_GCC32_LD_MAP ?= -Zmap=$(1)
    46 else
    47 TOOL_GCC32_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref
     45TOOL_GXX32_LD_MAP ?= -Zmap=$(1)
     46else
     47TOOL_GXX32_LD_MAP ?= -Wl,-Map -Wl,$(1) -Wl,--cref
    4848endif
    4949ifeq ($(BUILD_TARGET),os2)
    50 TOOL_GCC32_LD_SYSMOD_MAP ?= -Zmap=$(1)
    51 else
    52 TOOL_GCC32_LD_SYSMOD_MAP ?= -Map $(1) --cref
     50TOOL_GXX32_LD_SYSMOD_MAP ?= -Zmap=$(1)
     51else
     52TOOL_GXX32_LD_SYSMOD_MAP ?= -Map $(1) --cref
    5353endif
    5454ifdef SLKRUNS
    55 TOOL_GCC32_CC  += -fmessage-length=0
    56 TOOL_GCC32_CXX += -fmessage-length=0
     55TOOL_GXX32_CC  += -fmessage-length=0
     56TOOL_GXX32_CXX += -fmessage-length=0
    5757endif
    5858
    5959# General Properties used by kBuild
    60 TOOL_GCC32_COBJSUFF         ?= .o
    61 TOOL_GCC32_CFLAGS           ?=
    62 TOOL_GCC32_CFLAGS.debug     ?= -g
    63 TOOL_GCC32_CFLAGS.profile   ?= -g -O2 #-pg
    64 TOOL_GCC32_CFLAGS.release   ?= -O2
    65 TOOL_GCC32_CINCS            ?=
    66 TOOL_GCC32_CDEFS            ?=
    67 
    68 TOOL_GCC32_CXXOBJSUFF       ?= .o
    69 TOOL_GCC32_CXXOBJSUFF       ?= .o
    70 TOOL_GCC32_CXXFLAGS         ?=
    71 TOOL_GCC32_CXXFLAGS.debug   ?= -g
    72 TOOL_GCC32_CXXFLAGS.profile ?= -g -O2 #-pg
    73 TOOL_GCC32_CXXFLAGS.release ?= -O2
    74 TOOL_GCC32_CXXINCS          ?=
    75 TOOL_GCC32_CXXDEFS          ?=
    76 
    77 TOOL_GCC32_ASFLAGS          ?= -x assembler-with-cpp
    78 TOOL_GCC32_ASFLAGS.debug    ?= -g
    79 TOOL_GCC32_ASFLAGS.profile  ?= -g
    80 TOOL_GCC32_ASOBJSUFF        ?= .o
    81 
    82 TOOL_GCC32_ARFLAGS          ?= cr
    83 TOOL_GCC32_ARLIBSUFF        ?= .a
    84 
    85 TOOL_GCC32_LDFLAGS          ?=
    86 TOOL_GCC32_LDFLAGS.debug    ?= -g
    87 TOOL_GCC32_LDFLAGS.profile  ?= -g
     60TOOL_GXX32_COBJSUFF         ?= .o
     61TOOL_GXX32_CFLAGS           ?=
     62TOOL_GXX32_CFLAGS.debug     ?= -g
     63TOOL_GXX32_CFLAGS.profile   ?= -g -O2 #-pg
     64TOOL_GXX32_CFLAGS.release   ?= -O2
     65TOOL_GXX32_CINCS            ?=
     66TOOL_GXX32_CDEFS            ?=
     67
     68TOOL_GXX32_CXXOBJSUFF       ?= .o
     69TOOL_GXX32_CXXOBJSUFF       ?= .o
     70TOOL_GXX32_CXXFLAGS         ?=
     71TOOL_GXX32_CXXFLAGS.debug   ?= -g
     72TOOL_GXX32_CXXFLAGS.profile ?= -g -O2 #-pg
     73TOOL_GXX32_CXXFLAGS.release ?= -O2
     74TOOL_GXX32_CXXINCS          ?=
     75TOOL_GXX32_CXXDEFS          ?=
     76
     77TOOL_GXX32_ASFLAGS          ?= -x assembler-with-cpp
     78TOOL_GXX32_ASFLAGS.debug    ?= -g
     79TOOL_GXX32_ASFLAGS.profile  ?= -g
     80TOOL_GXX32_ASOBJSUFF        ?= .o
     81
     82TOOL_GXX32_ARFLAGS          ?= cr
     83TOOL_GXX32_ARLIBSUFF        ?= .a
     84
     85TOOL_GXX32_LDFLAGS          ?=
     86TOOL_GXX32_LDFLAGS.debug    ?= -g
     87TOOL_GXX32_LDFLAGS.profile  ?= -g
    8888
    8989
     
    101101# @param    $(outbase)  Output basename (full). Use this for list files and such.
    102102# @param    $(objsuff)  Object suffix.
    103 TOOL_GCC32_COMPILE_C_OUTPUT =
    104 TOOL_GCC32_COMPILE_C_DEPEND =
    105 TOOL_GCC32_COMPILE_C_DEPORD =
    106 define TOOL_GCC32_COMPILE_C_CMDS
    107         $(QUIET)$(TOOL_GCC32_CC) -c\
     103TOOL_GXX32_COMPILE_C_OUTPUT =
     104TOOL_GXX32_COMPILE_C_DEPEND =
     105TOOL_GXX32_COMPILE_C_DEPORD =
     106define TOOL_GXX32_COMPILE_C_CMDS
     107        $(QUIET)$(TOOL_GXX32_CC) -c\
    108108                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    109109                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    125125# @param    $(outbase)  Output basename (full). Use this for list files and such.
    126126# @param    $(objsuff)  Object suffix.
    127 TOOL_GCC32_COMPILE_CXX_OUTPUT =
    128 TOOL_GCC32_COMPILE_CXX_DEPEND =
    129 TOOL_GCC32_COMPILE_CXX_DEPORD =
    130 define TOOL_GCC32_COMPILE_CXX_CMDS
    131         $(QUIET)$(TOOL_GCC32_CXX) -c\
     127TOOL_GXX32_COMPILE_CXX_OUTPUT =
     128TOOL_GXX32_COMPILE_CXX_DEPEND =
     129TOOL_GXX32_COMPILE_CXX_DEPORD =
     130define TOOL_GXX32_COMPILE_CXX_CMDS
     131        $(QUIET)$(TOOL_GXX32_CXX) -c\
    132132                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    133133                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    150150# @param    $(objsuff)  Object suffix.
    151151#
    152 TOOL_GCC32_COMPILE_AS_OUTPUT =
    153 TOOL_GCC32_COMPILE_AS_DEPEND =
    154 TOOL_GCC32_COMPILE_AS_DEPORD =
    155 define TOOL_GCC32_COMPILE_AS_CMDS
    156         $(QUIET)$(TOOL_GCC32_AS) -c\
     152TOOL_GXX32_COMPILE_AS_OUTPUT =
     153TOOL_GXX32_COMPILE_AS_DEPEND =
     154TOOL_GXX32_COMPILE_AS_DEPORD =
     155define TOOL_GXX32_COMPILE_AS_CMDS
     156        $(QUIET)$(TOOL_GXX32_AS) -c\
    157157                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    158158                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    171171# @param    $(othersrc) Unhandled sources.
    172172# @param    $(outbase)  Output basename (full). Use this for list files and such.
    173 TOOL_GCC32_LINK_LIBRARY_OUTPUT = $(out).ar-script
    174 TOOL_GCC32_LINK_LIBRARY_DEPEND = $(othersrc)
    175 TOOL_GCC32_LINK_LIBRARY_DEPORD =
     173TOOL_GXX32_LINK_LIBRARY_OUTPUT = $(out).ar-script
     174TOOL_GXX32_LINK_LIBRARY_DEPEND = $(othersrc)
     175TOOL_GXX32_LINK_LIBRARY_DEPORD =
    176176ifeq ($(filter append-dash-n,$(KMK_FEATURES)),append-dash-n)
    177 define TOOL_GCC32_LINK_LIBRARY_CMDS
     177define TOOL_GXX32_LINK_LIBRARY_CMDS
    178178        $(QUIET)$(APPEND) $(out).ar-script 'CREATE $(out)'
    179179        $(QUIET)$(APPEND) -n $(out).ar-script \
     
    182182        $(QUIET)$(APPEND) $(out).ar-script 'SAVE'
    183183        $(QUIET)$(APPEND) $(out).ar-script 'END'
    184         $(QUIET)$(TOOL_GCC32_AR) -M < $(out).ar-script
    185 endef
    186 else
    187 define TOOL_GCC32_LINK_LIBRARY_CMDS
     184        $(QUIET)$(TOOL_GXX32_AR) -M < $(out).ar-script
     185endef
     186else
     187define TOOL_GXX32_LINK_LIBRARY_CMDS
    188188        $(QUIET)$(APPEND) $(out).ar-script "CREATE $(out)"
    189189        $(foreach o, $(objs)\
     
    193193        $(QUIET)$(APPEND) $(out).ar-script "SAVE"
    194194        $(QUIET)$(APPEND) $(out).ar-script "END"
    195         $(QUIET)$(TOOL_GCC32_AR) -M < $(out).ar-script
     195        $(QUIET)$(TOOL_GXX32_AR) -M < $(out).ar-script
    196196endef
    197197endif
     
    211211# @param    $(custom_post)  Custom step invoked after linking.
    212212# @param    $(outbase)  Output basename (full). Use this for list files and such.
    213 TOOL_GCC32_LINK_PROGRAM_OUTPUT = $(outbase).map
    214 TOOL_GCC32_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    215 TOOL_GCC32_LINK_PROGRAM_DEPORD =
    216 define TOOL_GCC32_LINK_PROGRAM_CMDS
    217         $(QUIET)$(TOOL_GCC32_LD) $(flags) -o $(out) $(objs)\
     213TOOL_GXX32_LINK_PROGRAM_OUTPUT = $(outbase).map
     214TOOL_GXX32_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     215TOOL_GXX32_LINK_PROGRAM_DEPORD =
     216define TOOL_GXX32_LINK_PROGRAM_CMDS
     217        $(QUIET)$(TOOL_GXX32_LD) $(flags) -o $(out) $(objs)\
    218218                $(foreach p,$(libpath), -L$(p))\
    219219                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    220                 $(call TOOL_GCC32_LD_MAP,$(outbase).map)
     220                $(call TOOL_GXX32_LD_MAP,$(outbase).map)
    221221endef
    222222
     
    235235# @param    $(custom_post)  Custom step invoked after linking.
    236236# @param    $(outbase)  Output basename (full). Use this for list files and such.
    237 TOOL_GCC32_LINK_DLL_OUTPUT = $(outbase).map
    238 TOOL_GCC32_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    239 TOOL_GCC32_LINK_DLL_DEPORD =
    240 define TOOL_GCC32_LINK_DLL_CMDS
    241         $(QUIET)$(TOOL_GCC32_LD) $(TOOL_GCC32_LDFLAGS.dll) $(flags) -o $(out)\
    242                 $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_GCC32_LD_SONAME,$(target),$(out)))\
     237TOOL_GXX32_LINK_DLL_OUTPUT = $(outbase).map
     238TOOL_GXX32_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     239TOOL_GXX32_LINK_DLL_DEPORD =
     240define TOOL_GXX32_LINK_DLL_CMDS
     241        $(QUIET)$(TOOL_GXX32_LD) $(TOOL_GXX32_LDFLAGS.dll) $(flags) -o $(out)\
     242                $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_GXX32_LD_SONAME,$(target),$(out)))\
    243243                $(objs)\
    244244                $(foreach p,$(libpath), -L$(p))\
    245245                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    246                 $(call TOOL_GCC32_LD_MAP,$(outbase).map)
     246                $(call TOOL_GXX32_LD_MAP,$(outbase).map)
    247247endef
    248248
     
    261261# @param    $(custom_post)  Custom step invoked after linking.
    262262# @param    $(outbase)  Output basename (full). Use this for list files and such.
    263 TOOL_GCC32_LINK_SYSMOD_OUTPUT = $(outbase).map
    264 TOOL_GCC32_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    265 TOOL_GCC32_LINK_SYSMOD_DEPORD =
    266 define TOOL_GCC32_LINK_SYSMOD_CMDS
    267         $(QUIET)$(TOOL_GCC32_LD_SYSMOD) $(TOOL_GCC32_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\
     263TOOL_GXX32_LINK_SYSMOD_OUTPUT = $(outbase).map
     264TOOL_GXX32_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     265TOOL_GXX32_LINK_SYSMOD_DEPORD =
     266define TOOL_GXX32_LINK_SYSMOD_CMDS
     267        $(QUIET)$(TOOL_GXX32_LD_SYSMOD) $(TOOL_GXX32_LDFLAGS.sysmod) $(flags) -o $(out) $(objs)\
    268268                $(foreach p,$(libpath), -L$(p))\
    269269                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    270                 $(call TOOL_GCC32_LD_SYSMOD_MAP,$(outbase).map)
    271 endef
    272 
     270                $(call TOOL_GXX32_LD_SYSMOD_MAP,$(outbase).map)
     271endef
     272
Note: See TracChangeset for help on using the changeset viewer.