<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Am 23.10.20 um 16:30 schrieb Louis
      Dionne:<br>
    </div>
    <blockquote type="cite"
      cite="mid:2152E8A0-4E34-42F1-BFDF-78878F48A447@apple.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <br class="">
      <div><br class="">
        <blockquote type="cite" class="">
          <div class="">On Oct 23, 2020, at 02:25, Dominik Montada <<a
              href="mailto:dominik.montada@hightec-rt.com" class=""
              moz-do-not-send="true">dominik.montada@hightec-rt.com</a>>
            wrote:</div>
          <br class="Apple-interchange-newline">
          <div class=""><span style="caret-color: rgb(0, 0, 0);
              font-family: Helvetica; font-size: 12px; font-style:
              normal; font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Hi Louis,</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">big +1 from me. I recently set up
              the runtimes for our downstream toolchain and to be honest
              it was quite a pain to get everything working. Due to the
              complexity we ended up creating our own CMake cache to
              make the configuration easier. We also tried to use the
              existing toolchain build. But since it tries to build the
              runtimes immediately after it built the compiler we cannot
              use it, as we have to build our C library first. So having
              a "unified standalone" approach sounds just like something
              that would make this use-case a lot easier.</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
          </div>
        </blockquote>
        <div><br class="">
        </div>
        Glad to see support!</div>
      <div><br class="">
        <blockquote type="cite" class="">
          <div class=""><br style="caret-color: rgb(0, 0, 0);
              font-family: Helvetica; font-size: 12px; font-style:
              normal; font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Do you already have an idea of how a
              multilib build would look like with your proposed setup? </span></div>
        </blockquote>
        <div><br class="">
        </div>
        <div>Can you define what you mean by a multilib build? Do you
          mean building for several architectures at once? Do you
          produce the libs for each architecture in different
          directories?</div>
      </div>
    </blockquote>
    <p>Yes, but also more than that: our target has different
      architectures, so we build each library for each architecture. But
      on top of that, we also build the libraries with different
      configurations, e.g. with or without exceptions. The Fuchsia
      toolchain is doing something similar IIRC. We produce these
      libraries in different directories per architecture and per
      configuration, so for example:</p>
    <p>target/arch1/except<br>
      target/arch1/noexcept<br>
      target/arch2/except<br>
      target/arch2/noexcept<br>
    </p>
    <blockquote type="cite"
      cite="mid:2152E8A0-4E34-42F1-BFDF-78878F48A447@apple.com">
      <div>
        <div><br class="">
        </div>
        <div>If you're talking about what I'm thinking of, I believe the
          simplest and most CMake-friendly way of doing it would be to
          have multiple CMake invocations. We can hide those behind a
          "driver" build like what the Runtimes build does, for example,
          but the libc++/libc++abi/libunwind builds themselves wouldn't
          be aware they're being built for multiple archs.</div>
      </div>
    </blockquote>
    With the use-case described above, we simply do one CMake invocation
    for each library configuration.<br>
    <blockquote type="cite"
      cite="mid:2152E8A0-4E34-42F1-BFDF-78878F48A447@apple.com">
      <div><br class="">
        <blockquote type="cite" class="">
          <div class=""><span style="caret-color: rgb(0, 0, 0);
              font-family: Helvetica; font-size: 12px; font-style:
              normal; font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Also, are you planning of including
              compiler-rt in this as well or is this strictly meant for
              libc++, libc++abi and libunwind?</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
          </div>
        </blockquote>
        <div><br class="">
        </div>
        For now, libc++, libc++abi and libunwind. Those are different
        because it makes sense to ship them alongside the compiler, or
        not. For example, at Apple we ship those as system libraries,
        not alongside our compiler. The compiler-rt build is also
        significantly more complicated.</div>
      <div><br class="">
      </div>
      <div>Louis<br class="">
        <br class="">
        <blockquote type="cite" class="">
          <div class=""><br style="caret-color: rgb(0, 0, 0);
              font-family: Helvetica; font-size: 12px; font-style:
              normal; font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Thanks for doing this!</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Dominik</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Am 23.10.20 um 00:31 schrieb Louis
              Dionne via llvm-dev:</span><br style="caret-color: rgb(0,
              0, 0); font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; text-align:
              start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <blockquote type="cite" style="font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              orphans: auto; text-align: start; text-indent: 0px;
              text-transform: none; white-space: normal; widows: auto;
              word-spacing: 0px; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">Hi folks,<br class="">
              <br class="">
              The topic of how to build the runtimes has been brought up
              several times in the past, sometimes by me, sometimes by
              others. All in all, building the runtimes is fairly
              complex: there's several ways of doing it, and they don't
              always work. This complexity leads to several problems,
              the first one being that I, as a maintainer, can't
              currently guarantee a good experience for people trying to
              build the library. What follows is a concrete proposal to
              make things better within a reasonable time frame.<br
                class="">
              <br class="">
              <br class="">
              The current state of things<br class="">
              -------------------------------------<br class="">
              <br class="">
              The runtimes (libc++, libc++abi and libunwind) currently
              support the following ways of being built:<br class="">
              <br class="">
              - Monorepo<br class="">
                  This is the "easy" and most common way to build the
              runtimes. It builds the runtimes as subprojects of LLVM
              (with LLVM_ENABLE_PROJECTS), with the same compiler that's
              used to build LLVM.<br class="">
              <br class="">
                  However, this is mostly wrong, since it encourages
              users to build libc++ using the system compiler, not the
              just-built compiler. Since a recent compiler is necessary
              for correctness (e.g. the RTTI for fundamental types
              generated in libc++abi), this is a real issue.<br class="">
              <br class="">
                  This also requires the whole LLVM CMake machinery to
              work on the platform where one wants to build the
              runtimes. This doesn't really work on most embedded
              platforms, so they just can't use the monorepo build.<br
                class="">
              <br class="">
                  This also suffers from issues like the fact that LLVM
              sets several global variables/flags that subprojects
              inherit. While it may make sense for some subprojects to
              use these defaults (e.g. the default C++ Standard), it is
              actively harmful for the runtimes, which need to have a
              tight control over these things.<br class="">
              <br class="">
              - Standalone<br class="">
                  Each runtime project also supports a Standalone build.
              This is a build where the root CMakeLists.txt is the one
              from the project itself. This is nice because it's
              lightweight, and it doesn't require all the LLVM CMake
              setup to work, which solves problems for embedded
              platforms.<br class="">
              <br class="">
                  Before the monorepo era, this type of build also made
              sense cause you could build one runtime without checking
              out the other ones, however that is not true anymore (the
              runtimes all share code that requires them to be
              co-located in the monorepo even if you're just building
              one of them).<br class="">
              <br class="">
                  This type of build has the significant downside that
              we need to tie together the various runtime projects using
              CMake variables. For example, we have to tell libc++abi
              where to find the libc++ headers, and we have to tell
              libc++ where to find the library for libc++abi. This leads
              to a plethora of CMake options that are brittle and add a
              lot of complexity (LIBCXX_CXX_ABI_INTREE,
              LIBCXXABI_LIBCXX_INCLUDES, etc.).<br class="">
              <br class="">
              - The llvm/runtimes build<br class="">
                  I like to call this the Toolchain build instead, cause
              that's really what it does. It builds the runtimes using
              the just-built toolchain, and with the goal of including
              those runtimes in the toolchain. It's more of a driver for
              the individual builds than a build configuration itself.
              It's currently built on top of the Standalone builds -- it
              builds the toolchain and then builds the various runtimes
              individually, stringing them together as required.<br
                class="">
              <br class="">
              <br class="">
              Proposal<br class="">
              --------------<br class="">
              <br class="">
              My goal with this proposal is to achieve:<br class="">
              1. Decoupling from the top-level LLVM CMake setup (which
              doesn't work, see above)<br class="">
              2. A simple build that works everywhere, including
              embedded platforms<br class="">
              3. Remove the need to manually tie together the various
              runtimes (as in the Standalone builds)<br class="">
              <br class="">
              My proposal is basically to have a "Unified Standalone"
              build for all the runtimes. It would look similar to a
              Monorepo build in essence (i.e. you'd have a single CMake
              invocation where you would specify the flags for all
              runtime projects at once), but it wouldn't be using the
              top-level LLVM CMake setup [1]. Specifically:<br class="">
              <br class="">
              1. Add a `runtimes/CMakeLists.txt` file that includes the
              runtimes subprojects that are requested through
              -DLLVM_ENABLE_PROJECTS (open to bikeshed), and sets up
              minimal stuff like the `llvm-lit` wrapper and Python, but
              none of the harmful stuff that's done by the top-level
              LLVM CMake.<br class="">
              2. Deprecate the old individual Standalone builds for this
              new "Unified Standalone build".<br class="">
              3. Users migrate to the new Unified Standalone build.
              Users include the current "Runtimes" build, some places in
              compiler-rt, and various organizations.<br class="">
              4. Remove support for the old individual Standalone
              builds.<br class="">
              <br class="">
              As a second step, we should also:<br class="">
              5. Deprecate the current Monorepo build in favor of either
              the Unified Standalone build (for those who just wish to
              build the runtimes), or the current Runtimes (aka
              Toolchain) build, for those who wish to build a toolchain.<br
                class="">
              6. Let users migrate to either<br class="">
              7. Remove support for the Monorepo build (e.g. make it an
              error to try and build one of the runtimes through the
              current Monorepo build).<br class="">
              <br class="">
              At the end of this transition, we'd hence have a single
              way to build all the runtimes, and a "driver" to build
              them with the just-built toolchain.<br class="">
              <br class="">
              Moving towards a single CMake invocation for the
              Standalone builds is the key element of this proposal that
              will make everything simpler, and remove the need to setup
              a bunch of things manually. It will also make it easier to
              start sharing more code across the various runtimes [2].<br
                class="">
              <br class="">
              I have already written the CMakeLists.txt for the "Unified
              Standalone" build, and I've been using it to build libc++
              and libc++abi at Apple. It is incredibly simple, and it
              works well so far.<br class="">
              <br class="">
              I'm looking forward to your comments,<br class="">
              Louis<br class="">
              <br class="">
              [1] If you're wondering what that would look like:<br
                class="">
              <br class="">
                  $ mkdir <monorepo-root>/build<br class="">
                  $ cd <monorepo-root>/build<br class="">
                  $ cmake ../runtimes
              -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi;libunwind" \<br
                class="">
                      -C <path-to-your-cache-if-desired> \<br
                class="">
                      -DLIBCXX_ENABLE_XXX \<br class="">
                      -DLIBCXXABI_ENABLE_XXX \<br class="">
                      <other options><br class="">
                  $ ninja install-cxx install-cxxabi<br class="">
              <br class="">
              [2] If you're wondering, I'm not proposing to remove being
              able to build libc++ against other ABI libraries, or any
              such thing. The Unified Standalone build would retain the
              same amount of flexibility as today.<br class="">
              <br class="">
              _______________________________________________<br
                class="">
              LLVM Developers mailing list<br class="">
              <a href="mailto:llvm-dev@lists.llvm.org" class=""
                moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br
                class="">
              <a
                href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
                class="" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br
                class="">
            </blockquote>
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">--<span
                class="Apple-converted-space"> </span></span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">----------------------------------------------------------------------</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Dominik Montada                   <a
                href="mailto:dominik.montada@hightec-rt.com" class=""
                moz-do-not-send="true">Email:
                dominik.montada@hightec-rt.com</a></span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">HighTec EDV-Systeme GmbH
                       Phone: +49 681 92613 19</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Europaallee 19
                                 Fax:   +49-681-92613-26</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">D-66113 Saarbrücken
                            WWW:<span class="Apple-converted-space"> </span></span><a
              href="http://www.hightec-rt.com/" style="font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; orphans: auto; text-align: start;
              text-indent: 0px; text-transform: none; white-space:
              normal; widows: auto; word-spacing: 0px;
              -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
              0px;" class="" moz-do-not-send="true">http://www.hightec-rt.com</a><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Managing Director: Vera Strothmann</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Register Court: Saarbrücken, HRB
              10445, VAT ID: DE 138344222</span><br style="caret-color:
              rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; text-align:
              start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">This e-mail may contain confidential
              and/or privileged information. If</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">you are not the intended recipient
              please notify the sender immediately</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">and destroy this e-mail. Any
              unauthorised copying, disclosure or</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">distribution of the material in this
              e-mail is strictly forbidden.</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">---</span></div>
        </blockquote>
      </div>
      <br class="">
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
----------------------------------------------------------------------
Dominik Montada                   Email: <a class="moz-txt-link-abbreviated" href="mailto:dominik.montada@hightec-rt.com">dominik.montada@hightec-rt.com</a>
HighTec EDV-Systeme GmbH          Phone: +49 681 92613 19
Europaallee 19                    Fax:   +49-681-92613-26
D-66113 Saarbrücken               WWW: <a class="moz-txt-link-freetext" href="http://www.hightec-rt.com">http://www.hightec-rt.com</a>

Managing Director: Vera Strothmann
Register Court: Saarbrücken, HRB 10445, VAT ID: DE 138344222

This e-mail may contain confidential and/or privileged information. If
you are not the intended recipient please notify the sender immediately
and destroy this e-mail. Any unauthorised copying, disclosure or
distribution of the material in this e-mail is strictly forbidden.
--- </pre>
  </body>
</html>