[llvm-commits] [llvm] r144255 - in /llvm/trunk: CMakeLists.txt Makefile.rules lib/Target/LLVMBuild.txt utils/llvm-build/llvmbuild/main.py

NAKAMURA Takumi geek4civic at gmail.com
Sat May 5 07:28:06 PDT 2012


Daniel,

I found LLVMBuild might miss the new target when;
(assume --enable-targets=all)

  - configure got the new target (eg. NVPTX)
  - Makefile.config was updated since configure had been updated.

Then,

  1) make (level 1) reads Makefile.config.
      Then, TARGETS_TO_BUILD does not have NVPTX.
  2) make (level 1) regenerates Makefile.config with newer configure.
  3) --enable-targets "$(TARGETS_TO_BUILD)" (for Makefile.llvmbuild)
is not expanded as the new $TARGETS_TO_BUILD.
  X) llvm-config missed NVPTX until Makefile.llvmbuild would be updated.


...Takumi


2011/11/10 Daniel Dunbar <daniel at zuster.org>:
> Author: ddunbar
> Date: Wed Nov  9 19:16:48 2011
> New Revision: 144255
>
> URL: http://llvm.org/viewvc/llvm-project?rev=144255&view=rev
> Log:
> build/Make & CMake: Pass the appropriate --native-target and --enable-targets
> options to llvm-build, so the all-targets etc. components are defined properly.
>
> Modified:
>    llvm/trunk/CMakeLists.txt
>    llvm/trunk/Makefile.rules
>    llvm/trunk/lib/Target/LLVMBuild.txt
>    llvm/trunk/utils/llvm-build/llvmbuild/main.py
>
> Modified: llvm/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=144255&r1=144254&r2=144255&view=diff
> ==============================================================================
> --- llvm/trunk/CMakeLists.txt (original)
> +++ llvm/trunk/CMakeLists.txt Wed Nov  9 19:16:48 2011
> @@ -236,6 +236,8 @@
>  message(STATUS "Constructing LLVMBuild project information")
>  execute_process(
>   COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}
> +            --native-target "${LLVM_NATIVE_ARCH}"
> +            --enable-targets "${LLVM_TARGETS_TO_BUILD}"
>             --write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}
>             --write-cmake-fragment ${LLVMBUILDCMAKEFRAG}
>             ERROR_VARIABLE LLVMBUILDOUTPUT
>
> Modified: llvm/trunk/Makefile.rules
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=144255&r1=144254&r2=144255&view=diff
> ==============================================================================
> --- llvm/trunk/Makefile.rules (original)
> +++ llvm/trunk/Makefile.rules Wed Nov  9 19:16:48 2011
> @@ -92,6 +92,8 @@
>  $(LLVMBuildMakeFrag): $(PROJ_SRC_ROOT)/Makefile.rules
>        $(Echo) Constructing LLVMBuild project information.
>        $(Verb) $(LLVMBuildTool) \
> +         --native-target "$(ARCH)" \
> +         --enable-targets "$(TARGETS_TO_BUILD)" \
>          --write-library-table $(LLVMConfigLibraryDependenciesInc) \
>          --write-make-fragment $(LLVMBuildMakeFrag)
>
>
> Modified: llvm/trunk/lib/Target/LLVMBuild.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/LLVMBuild.txt?rev=144255&r1=144254&r2=144255&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/LLVMBuild.txt (original)
> +++ llvm/trunk/lib/Target/LLVMBuild.txt Wed Nov  9 19:16:48 2011
> @@ -21,8 +21,9 @@
>  parent = Libraries
>  required_libraries = Core MC Support
>
> -; This is a convenient group we define (and expect targets to add to) which
> -; makes it easy for tools to include every target.
> +; This is a special group whose required libraries are extended (by llvm-build)
> +; with every built target, which makes it easy for tools to include every
> +; target.
>  [component_1]
>  type = LibraryGroup
>  name = all-targets
>
> Modified: llvm/trunk/utils/llvm-build/llvmbuild/main.py
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/llvm-build/llvmbuild/main.py?rev=144255&r1=144254&r2=144255&view=diff
> ==============================================================================
> --- llvm/trunk/utils/llvm-build/llvmbuild/main.py (original)
> +++ llvm/trunk/utils/llvm-build/llvmbuild/main.py Wed Nov  9 19:16:48 2011
> @@ -505,7 +505,7 @@
>     determined based on the target configuration options.
>
>     This currently is responsible for populating the required_libraries list of
> -    the "Native", "NativeCodeGen", and "Engine" components.
> +    the "all-targets", "Native", "NativeCodeGen", and "Engine" components.
>     """
>
>     # Determine the available targets.
> @@ -536,8 +536,14 @@
>     if opts.enable_targets is None:
>         enable_targets = available_targets.values()
>     else:
> +        # We support both space separated and semi-colon separated lists.
> +        if ' ' in opts.enable_targets:
> +            enable_target_names = opts.enable_targets.split()
> +        else:
> +            enable_target_names = opts.enable_targets.split(';')
> +
>         enable_targets = []
> -        for name in opts.enable_targets.split():
> +        for name in enable_target_names:
>             target = available_targets.get(name)
>             if target is None:
>                 parser.error("invalid target to enable: %r (not in project)" % (
> @@ -641,8 +647,8 @@
>                       action="store", default=None)
>     group.add_option("", "--enable-targets",
>                       dest="enable_targets", metavar="NAMES",
> -                      help=("Enable the given space separated list of targets, "
> -                            "or all targets if not present"),
> +                      help=("Enable the given space or semi-colon separated "
> +                            "list of targets, or all targets if not present"),
>                       action="store", default=None)
>     parser.add_option_group(group)
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list