From owner-freebsd-current@FreeBSD.ORG Mon Sep 27 08:03:03 2010 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62A9B1065698; Mon, 27 Sep 2010 08:03:03 +0000 (UTC) (envelope-from olivier@gid0.org) Received: from mail-iw0-f182.google.com (mail-iw0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 13F6A8FC1E; Mon, 27 Sep 2010 08:03:02 +0000 (UTC) Received: by iwn34 with SMTP id 34so5779934iwn.13 for ; Mon, 27 Sep 2010 01:03:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.231.173.144 with SMTP id p16mr8609403ibz.108.1285572766788; Mon, 27 Sep 2010 00:32:46 -0700 (PDT) Received: by 10.231.168.202 with HTTP; Mon, 27 Sep 2010 00:32:46 -0700 (PDT) In-Reply-To: <4C9B3207.2070302@kkip.pl> References: <4C99A53E.7060707@FreeBSD.org> <4C9A32B8.60204@kkip.pl> <4C9A6A38.4080307@freebsd.org> <4C9A7203.8010701@kkip.pl> <20100923065134.GA31455@freebsd.org> <4C9B3207.2070302@kkip.pl> Date: Mon, 27 Sep 2010 09:32:46 +0200 Message-ID: From: Olivier Smedts To: Bartosz Stec Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Rene Ladan , Roman Divacky , current@freebsd.org Subject: Re: Clang now builds world and kernel, on i386 and amd64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 08:03:03 -0000 2010/9/23 Bartosz Stec : > =A0On 2010-09-23 08:51, Roman Divacky wrote: >> >> if you want to post any build-time numbers for clang please >> >> =A0 =A0 =A0 =A0 =A0 -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DND= EBUG >> >> uncomment the -DNDEBUG on this line in lib/clang/clang.build.mk >> and rebuild it otherwise you are using Release+Asserts build of >> clang which is some 30% slower than the normal one... >> _______________________________________________ >> freebsd-current@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-current >> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.or= g" > > When i try to rebuild world again (machine has world and kernel builded w= ith > clang) I cought following problem at the very beginning: > > -------------------------------------------------------------- >>>> World build started on Thu Sep 23 12:46:55 CEST 2010 > -------------------------------------------------------------- > > -------------------------------------------------------------- >>>> Rebuilding the temporary build tree > -------------------------------------------------------------- > rm -rf /usr/obj/usr/src/tmp > mkdir -p /usr/obj/usr/src/tmp/lib > mkdir -p /usr/obj/usr/src/tmp/usr > mkdir -p /usr/obj/usr/src/tmp/legacy/usr > mtree -deU -f /usr/src/etc/mtree/BSD.usr.dist =A0-p > /usr/obj/usr/src/tmp/legacy/usr >/dev/null > mtree -deU -f /usr/src/etc/mtree/BSD.usr.dist =A0-p /usr/obj/usr/src/tmp/= usr >>/dev/null > mtree -deU -f /usr/src/etc/mtree/BSD.include.dist =A0-p > /usr/obj/usr/src/tmp/usr/include >/dev/null > ln -sf /usr/src/sys /usr/obj/usr/src/tmp > > -------------------------------------------------------------- >>>> stage 1.1: legacy release compatibility shims > -------------------------------------------------------------- > cd /usr/src; MAKEOBJDIRPREFIX=3D/usr/obj/usr/src/tmp =A0INSTALL=3D"sh > /usr/src/tools/install.sh" > =A0PATH=3D/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legac= y/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/sbin:/bin:/usr/sbin:/usr/b= in > =A0WORLDTMP=3D/usr/obj/usr/src/tmp =A0VERSION=3D"FreeBSD 9.0-CURRENT i386= 900021" > =A0MAKEFLAGS=3D"-m /usr/src/tools/build/mk =A0-m /usr/src/share/mk" make = -f > Makefile.inc1 =A0DESTDIR=3D =A0BOOTSTRAPPING=3D900021 =A0SSP_CFLAGS=3D = =A0-DWITHOUT_HTML > -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN =A0-DNO_PIC -DWITHOUT_PROFILE > -DNO_SHARED =A0-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF legacy > =3D=3D=3D> tools/build (obj,includes,depend,all,install) > /usr/obj/usr/src/tmp/usr/src/tools/build created for /usr/src/tools/build > cd /usr/src/tools/build; make buildincludes; make installincludes > rm -f .depend > CC=3D'clang' mkdep -f .depend -a =A0 =A0-I/usr/obj/usr/src/tmp/legacy/usr= /include > /usr/src/tools/build/dummy.c > clang -O2 -pipe -std=3Dgnu99 =A0 -I/usr/obj/usr/src/tmp/legacy/usr/includ= e -c > /usr/src/tools/build/dummy.c > building static egacy library > ranlib libegacy.a > sh /usr/src/tools/install.sh -C -o root -g wheel -m 444 =A0 libegacy.a > /usr/obj/usr/src/tmp/legacy/usr/lib > > -------------------------------------------------------------- >>>> stage 1.2: bootstrap tools > -------------------------------------------------------------- > cd /usr/src; MAKEOBJDIRPREFIX=3D/usr/obj/usr/src/tmp =A0INSTALL=3D"sh > /usr/src/tools/install.sh" > =A0PATH=3D/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legac= y/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/sbin:/bin:/usr/sbin:/usr/b= in > =A0WORLDTMP=3D/usr/obj/usr/src/tmp =A0VERSION=3D"FreeBSD 9.0-CURRENT i386= 900021" > =A0MAKEFLAGS=3D"-m /usr/src/tools/build/mk =A0-m /usr/src/share/mk" make = -f > Makefile.inc1 =A0DESTDIR=3D =A0BOOTSTRAPPING=3D900021 =A0SSP_CFLAGS=3D = =A0-DWITHOUT_HTML > -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN =A0-DNO_PIC -DWITHOUT_PROFILE > -DNO_SHARED =A0-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF bootstrap-tools > =3D=3D=3D> lib/clang/libllvmsupport (obj,depend,all,install) > /usr/obj/usr/src/tmp/usr/src/lib/clang/libllvmsupport created for > /usr/src/lib/clang/libllvmsupport > rm -f .depend > CC=3D'clang' mkdep -f .depend -a > =A0-I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/include > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/tools/clang/inc= lude > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support -I. > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/../../lib/clang= /include > -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS > -D__STDC_CONSTANT_MACROS -DNDEBUG > -DLLVM_HOSTTRIPLE=3D\"i386-undermydesk-freebsd9.0\" > -I/usr/obj/usr/src/tmp/legacy/usr/include > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/regco= mp.c > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/reger= ror.c > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/regex= ec.c > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/regfr= ee.c > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/regst= rlcpy.c > CC=3D'clang' mkdep -f .depend -a > =A0-I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/include > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/tools/clang/inc= lude > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support -I. > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/../../lib/clang= /include > -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS > -D__STDC_CONSTANT_MACROS -DNDEBUG > -DLLVM_HOSTTRIPLE=3D\"i386-undermydesk-freebsd9.0\" > -I/usr/obj/usr/src/tmp/legacy/usr/include > =A0/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/AP= Float.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/APInt= .cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/APSIn= t.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Alloc= ator.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Comma= ndLine.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Const= antRange.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Crash= RecoveryContext.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/DAGDe= ltaAlgorithm.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Debug= .cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Delta= Algorithm.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Dwarf= .cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Error= Handling.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Foldi= ngSet.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Forma= ttedStream.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Graph= Writer.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Manag= edStatic.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Memor= yBuffer.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Plugi= nLoader.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Prett= yStackTrace.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Regex= .cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Small= PtrSet.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Small= Vector.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Sourc= eMgr.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Stati= stic.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Strin= gExtras.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Strin= gMap.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Strin= gPool.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Strin= gRef.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Targe= tRegistry.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Timer= .cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Tripl= e.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/Twine= .cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/circu= lar_raw_ostream.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/raw_o= s_ostream.cpp > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/raw_o= stream.cpp > clang++ -O2 -pipe > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/include > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/tools/clang/inc= lude > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support -I. > -I/usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/../../lib/clang= /include > -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS > -D__STDC_CONSTANT_MACROS -DNDEBUG > -DLLVM_HOSTTRIPLE=3D\"i386-undermydesk-freebsd9.0\" -fno-exceptions > -I/usr/obj/usr/src/tmp/legacy/usr/include -c > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/APFlo= at.cpp > Assertion failed: (false && "Ran out of registers during register > allocation!"), function assignRegOrStackSlotAtInterval, file > /usr/src/lib/clang/libllvmcodegen/../../../contrib/llvm/lib/CodeGen/RegAl= locLinearScan.cpp, > line 1196. > Stack dump: > 0. =A0 =A0 =A0Program arguments: /usr/bin/clang++ -cc1 -triple > i386-undermydesk-freebsd9.0 -S -disable-free -main-file-name APFloat.cpp > -mrelocation-model static -mdisable-fp-elim -mconstructor-aliases > -target-cpu i486 -resource-dir /usr/lib/clang/2.8 -D LLVM_ON_UNIX -D > LLVM_ON_FREEBSD -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -D NDEBU= G > -D LLVM_HOSTTRIPLE=3D"i386-undermydesk-freebsd9.0" -I > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/include -I > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/tools/clang/inclu= de > -I /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support -I= . > -I > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/../../lib/clang/i= nclude > -I /usr/obj/usr/src/tmp/legacy/usr/include -O2 -ferror-limit 19 > -fmessage-length 205 -fgnu-runtime -fdiagnostics-show-option > -fcolor-diagnostics -o /tmp/cc-lvFfGd.s -x c++ > /usr/src/lib/clang/libllvmsupport/../../../contrib/llvm/lib/Support/APFlo= at.cpp > 1. parser at end of file > 2. =A0 =A0 =A0Code generation > 3. =A0 =A0 =A0Running pass 'Linear Scan Register Allocator' on function > '@_ZN4llvm7APFloat28convertFromHexadecimalStringENS_9StringRefENS0_12roun= dingModeE' > clang++: error: clang frontend command failed due to signal 6 (use -v to = see > invocation) > *** Error code 250 Same error here with yesterday's -CURRENT, but not at the same time (the running system was compiled using gcc) : # uname -a FreeBSD z.gid0.org 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Fri Sep 24 22:07:43 CEST 2010 root@z.gid0.org:/usr/obj/usr/src/sys/XPC i386 # clang -v FreeBSD clang version 2.8 (branches/release_28 114020) 20100917 Target: i386-undermydesk-freebsd9.0 Thread model: posix # grep -vE '^#|^$' /etc/make.conf KERNCONF=3DXPC CPUTYPE=3Dathlon-xp CFLAGS=3D-O2 -pipe -march=3Dnative -fomit-frame-pointer NO_CPU_CFLAGS=3Dyes COPTFLAGS=3D-O2 -pipe -march=3Dnative -fomit-frame-pointer NO_CPU_COPTFLAGS=3Dyes WITHOUT_PROFILE=3Dyes SUP_UPDATE=3Dyes SUPFILE=3D/usr/share/examples/cvsup/standard-supfile SUPHOST=3Dcvsup3.fr.freebsd.org .if !defined(CC) || ${CC} =3D=3D "cc" CC=3Dclang .endif .if !defined(CXX) || ${CXX} =3D=3D "c++" CXX=3Dclang++ .endif NO_WERROR=3D WERROR=3D # make buildworld [...] =3D=3D=3D> gnu/lib/libgcc (obj,depend,all,install) make -f /usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/usr/src/gnu/lib/libgcc/../../../contrib/gcc tm.h TARGET_CPU_DEFAULT=3D"" HEADERS=3D"options.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos-undef.h elfos.h freebsd-native.h freebsd-spec.h freebsd.h i386/freebsd.h defaults.h" DEFINES=3D"" /bin/sh /usr/src/gnu/lib/libgcc/../../../contrib/gcc/mkconfig.sh tm.h echo '#define EXTRA_MODES_FILE "i386/i386-modes.def"' >> tm.h make -f /usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/usr/src/gnu/lib/libgcc/../../../contrib/gcc tconfig.h TARGET_CPU_DEFAULT=3D"" HEADERS=3D"auto-host.h ansidecl.h" DEFINES=3D"USED_FOR_TARGET" /bin/sh /usr/src/gnu/lib/libgcc/../../../contrib/gcc/mkconfig.sh tconfig.h make -f /usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/usr/src/gnu/lib/libgcc/../../../contrib/gcc options.h LC_ALL=3DC awk -f /usr/src/gnu/lib/libgcc/../../../contrib/gcc/opt-gather.awk /usr/src/gnu/lib/libgcc/../../../contrib/gcc/c.opt /usr/src/gnu/lib/libgcc/../../../contrib/gcc/common.opt /usr/src/gnu/lib/libgcc/../../../contrib/gcc/config/i386/i386.opt > optionlist LC_ALL=3DC awk -f /usr/src/gnu/lib/libgcc/../../../contrib/gcc/opt-functions.awk -f /usr/src/gnu/lib/libgcc/../../../contrib/gcc/opth-gen.awk < optionlist > options.h make -f /usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/usr/src/gnu/lib/libgcc/../../../contrib/gcc unwind.h ln -sf /usr/src/gnu/lib/libgcc/../../../contrib/gcc/unwind-generic.h unwind= .h make -f /usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/usr/src/gnu/lib/libgcc/../../../contrib/gcc gthr-default.h ln -sf /usr/src/gnu/lib/libgcc/../../../contrib/gcc/gthr-posix.h gthr-defau= lt.h clang -c -O2 -pipe -march=3Dnative -fomit-frame-pointer -DIN_GCC -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT -I/usr/src/gnu/lib/libgcc/../../../contrib/gcclibs/include -I/usr/src/gnu/lib/libgcc/../../../contrib/gcc/config -I/usr/src/gnu/lib/libgcc/../../../contrib/gcc -I. -I/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools -std=3Dgnu99 -fvisibility=3Dhidden -DHIDE_EXPORTS -fPIC -fexceptions -D__GLIBC__=3D3 -DElfW=3D__ElfN -o unwind-dw2.o /usr/src/gnu/lib/libgcc/../../../contrib/gcc/unwind-dw2.c Assertion failed: (!spillIs.empty() && "No spill intervals?"), function assignRegOrStackSlotAtInterval, file /usr/src/lib/clang/libllvmcodegen/../../../contrib/llvm/lib/CodeGen/RegAllo= cLinearScan.cpp, line 1287. Stack dump: 0. Program arguments: /usr/obj/usr/src/tmp/usr/bin/clang -cc1 -triple i386-undermydesk-freebsd9.0 -S -disable-free -main-file-name unwind-dw2.c -pic-level 2 -mconstructor-aliases -target-cpu athlon-mp -resource-dir /usr/obj/usr/src/tmp/usr/lib/clang/2.8 -D IN_GCC -D IN_LIBGCC2 -D __GCC_FLOAT_NOT_NEEDED -D HAVE_GTHR_DEFAULT -D HIDE_EXPORTS -D __GLIBC__=3D3 -D ElfW=3D__ElfN -I /usr/src/gnu/lib/libgcc/../../../contrib/gcclibs/include -I /usr/src/gnu/lib/libgcc/../../../contrib/gcc/config -I /usr/src/gnu/lib/libgcc/../../../contrib/gcc -I . -I /usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools -O2 -std=3Dgnu99 -ferror-limit 19 -fmessage-length 118 -fvisibility hidden -fexceptions -fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-UeLPOI.s -x c /usr/src/gnu/lib/libgcc/../../../contrib/gcc/unwind-dw2.c 1. parser at end of file 2. Code generation 3. Running pass 'Linear Scan Register Allocator' on function '@_Unwind_GetGR' clang: error: clang frontend command failed due to signal 6 (use -v to see invocation) *** Error code 250 Stop in /usr/src/gnu/lib/libgcc. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. --=20 Olivier Smedts=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=A0 _ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 ASCII ribbon campaign ( ) e-mail: olivier@gid0.org=A0 =A0 =A0 =A0 - against HTML email & vCards=A0 X www: http://www.gid0.org=A0 =A0 - against proprietary attachments / \ =A0 "Il y a seulement 10 sortes de gens dans le monde : =A0 ceux qui comprennent le binaire, =A0 et ceux qui ne le comprennent pas."