[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