Ticket #109: 005-gcc3omf_gen_implib_for_dll.patch

File 005-gcc3omf_gen_implib_for_dll.patch, 2.7 KB (added by dmik, 12 years ago)
  • kBuild/tools/GCC3OMF.kmk

    diff -u -r ../old/kBuild/tools/GCC3OMF.kmk ./kBuild/tools/GCC3OMF.kmk
    old new  
    291291#
    292292# @param    $(outbase)  Output basename (full). Use this for list files and such.
    293293TOOL_GCC3OMF_LINK_DLL_OUTPUT = $(outbase).map $(outbase).rsp
     294TOOL_GCC3OMF_LINK_DLL_OUTPUT_MAYBE = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
    294295TOOL_GCC3OMF_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    295 TOOL_GCC3OMF_LINK_DLL_DEPORD =
     296TOOL_GCC3OMF_LINK_DLL_DEPORD = $(if $(filter KMK_NOIMPLIB,$(flags)),,$(call DIRDEP,$(PATH_STAGE_LIB)))
    296297define TOOL_GCC3OMF_LINK_DLL_CMDS
    297298        $(QUIET)$(APPEND) -n $(outbase).rsp\
    298299                $(TOOL_GCC3OMF_LDFLAGS.dll)\
    299                 $(flags)\
     300                $(filter-out KMK_%,$(flags))\
    300301                -o $(out)\
    301302                $(objs)\
    302303                $(foreach p,$(libpath), -L$(p))\
     
    304305                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    305306                -Zmap=$(outbase).map
    306307        $(QUIET)$(TOOL_GCC3OMF_LD) @$(outbase).rsp
     308        $(if $(filter KMK_NOIMPLIB,$(flags)),, \
     309                $(QUIET)$(TOOL_GCC3OMF_AR_IMP) -o $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(out))
    307310        $(if $(filter %.res,$(objs)), \
    308311                $(QUIET)$(TOOL_GCC3OMF_RC) $(filter %.res,$(objs)) $(out))
    309312endef
  • kBuild/tools/GXX3OMF.kmk

    diff -u -r ../old/kBuild/tools/GXX3OMF.kmk ./kBuild/tools/GXX3OMF.kmk
    old new  
    291291#
    292292# @param    $(outbase)  Output basename (full). Use this for list files and such.
    293293TOOL_GXX3OMF_LINK_DLL_OUTPUT = $(outbase).map $(outbase).rsp
     294TOOL_GXX3OMF_LINK_DLL_OUTPUT_MAYBE = $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib
    294295TOOL_GXX3OMF_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    295 TOOL_GXX3OMF_LINK_DLL_DEPORD =
     296TOOL_GXX3OMF_LINK_DLL_DEPORD = $(if $(filter KMK_NOIMPLIB,$(flags)),,$(call DIRDEP,$(PATH_STAGE_LIB)))
    296297define TOOL_GXX3OMF_LINK_DLL_CMDS
    297298        $(QUIET)$(APPEND) -n $(outbase).rsp\
    298299                $(TOOL_GXX3OMF_LDFLAGS.dll)\
    299                 $(flags)\
     300                $(filter-out KMK_%,$(flags))\
    300301                -o $(out)\
    301302                $(objs)\
    302303                $(foreach p,$(libpath), -L$(p))\
     
    304305                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\
    305306                -Zmap=$(outbase).map
    306307        $(QUIET)$(TOOL_GXX3OMF_LD) @$(outbase).rsp
     308        $(if $(filter KMK_NOIMPLIB,$(flags)),, \
     309                $(QUIET)$(TOOL_GXX3OMF_AR_IMP) -o $(PATH_STAGE_LIB)/$(notdir $(outbase)).lib $(out))
    307310        $(if $(filter %.res,$(objs)), \
    308311                $(QUIET)$(TOOL_GXX3OMF_RC) $(filter %.res,$(objs)) $(out))
    309312endef