<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>