From b114d2e5859d3e4b5de7e5031ccd87b8c5719a7c Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sat, 17 Oct 2009 21:50:11 +0000 Subject: [PATCH] Add a "Universal Driver" open project, and web page. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84366 91177308-0d34-0410-b5e6-96231b3b80d8 --- www/OpenProjects.html | 7 ++++++ www/UniversalDriver.html | 52 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 www/UniversalDriver.html diff --git a/www/OpenProjects.html b/www/OpenProjects.html index d3d05551c0..46d9716c78 100644 --- a/www/OpenProjects.html +++ b/www/OpenProjects.html @@ -102,6 +102,13 @@ StringRef'izing (converting to use llvm::StringRef instead of const char * or std::string) various clang interfaces. This generally simplifies the code and makes it more efficient. +
  • Universal Driver: Clang is inherently a cross compiler. We would like +to define a new model for cross compilation which provides a great user +experience -- it should be easy to cross compile applications, install support +for new architectures, access different compilers and tools, and be consistent +across different platforms. See the Universal +Driver web page for more information.
  • + diff --git a/www/UniversalDriver.html b/www/UniversalDriver.html new file mode 100644 index 0000000000..16f8bb6cf9 --- /dev/null +++ b/www/UniversalDriver.html @@ -0,0 +1,52 @@ + + + + + Clang - Universal Driver + + + + + + + +
    + +

    The Clang Universal Driver Project

    + +

    Clang is inherently a cross compiler, in that it is always capable of +building code for targets which are a different architecture or even operating +system from the one running the compiler. However, actually cross compiling in +practice involves much more than just generating the right assembly code for a +target, it also requires having an appropriate tool chain (assemblers, linkers), +access to header files and libraries for the target, and many other details (for +example, the calling convention or whether software floating point is in +use). Traditionally, compilers and development environments provide little +assistance with this process, so users do not have easy access to the powerful +underlying cross-compilation abilities of clang.

    + +

    We would like to solve this problem by defining a new model for how cross +compilation is done, based on the idea of a universal driver. The key +point of this model is that the user would always access the compiler through a +single entry point (e.g., /usr/bin/cc) and provide an argument +specifying the configuration they would like to target. Under the hood +this entry point (the universal driver) would have access to all the information +that the driver, compiler, and other tools need to build applications for that +target.

    + +

    This is a large and open-ended project. It's eventually success depends not +just on implementing the model, but also on getting buy-in from compiler +developers, operating system distribution vendors and the development community +at large. Our plan is to begin by defining a clear list of the problems we want +to solve and a proposed implementation (from the user perspective).

    + +

    This project is in the very early (i.e., thought experiment) stages of +development. Stay tuned for more information, and of course, patches +welcome!

    + +

    See also PR4127.

    + +
    + + -- 2.50.1