Date: Wed, 25 Jul 2018 22:45:46 +0800 From: Julian Elischer <julian@freebsd.org> To: Yuri Pankov <yuripv@yuripv.net>, freebsd-current <freebsd-current@freebsd.org> Subject: Re: gcc/clang interoperability problem with a custom "samba" build in recent -current. Message-ID: <05c98785-4812-e519-5555-3d2315d28a1f@freebsd.org> In-Reply-To: <3dd60a0d-7a5e-e9f0-3018-d09b5b8ac389@yuripv.net> References: <abe47622-ba13-7c3f-9ddd-51c9fd3c40cd@freebsd.org> <bd0ad5d1-76ce-28b0-3813-4c11a82cd27d@freebsd.org> <c77253cd-3fca-a3a6-2f98-73ecb8c656bc@yuripv.net> <3dd60a0d-7a5e-e9f0-3018-d09b5b8ac389@yuripv.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 22/7/18 3:11 am, Yuri Pankov wrote: > Yuri Pankov wrote: >> Julian Elischer wrote: >>> I would really like ot get some pointers as to who are our tools >>> committers at the moment, in particular who might know about these >>> issues. >>> The main issue for me at the moment is the ability to compile the >>> aesni code in Samba from clang.. >>> >>> Julian >>> >>> >>> On 20/7/18 7:32 pm, Julian Elischer wrote: >>>> compiling our samba with gcc 4.2.1 in 12 gave us some off behaviour >>>> when lld became the linker I think.. >>>> >>>> 1/ linking needed some directories added to some of the build >>>> scripts because previously apparently it looked in $SYSROOT/usr/lib >>>> by default and now it doesn't. >>>> >>>> 2/ compiling our samba produces a libtdb.so that has various symbols >>>> in it, (according to nm(1) ), but when we try link against it we get >>>> complaints about those symbols not being defined. >>>> >>>> 3/ an attempt to switch to using clang to compile everything >>>> leads to: >>>> >>>> >>>> "--aes-accel=intelaesni selected and compiler rejects >>>> -Wp,-E,-lang-asm. >>>> >>>> One wonders whether there is a clang equivalent of >>>> "-Wp,-E,-lang-asm" >>>> >>>> The AES acceleration is a configure option for the samba package. >>>> >>>> Apparently turning it on requires -Wp,-E,-lang-asm. >>>> >>>> which apparently gcc 4.2.1 has, but clang doesn't have. >>>> >>>> FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) >>>> (based >>>> on LLVM 6.0.1) >>>> Target: x86_64-unknown-freebsd12.0 >>>> Thread model: posix >>>> InstalledDir: /usr/bin >>>> >>>> anyone know if there is a clang equivalent of -Wp, -E,-lang-asm? >> >> In later GCC versions the cpp's -lang-asm seems to be deprecated in >> favor of -x assembler-with-cpp as it conflicts with -l option. >> >> Could you try changing the -Wp,-E,-lang-asm to >> -Wp,-E,-xassembler-with-cpp? > > Just tried it myself, and if you indeed mean the > third_party/aesni-intel/aesni-intel_asm.c, the following seems to > work for me: > > clang -xassembler-with-cpp -c third_party/aesni-intel/aesni-intel_asm.c when I try it I get lots of errors due to hte fact that there are assembled comments that start with # and they are all cited as errors by clang. I had to put '//' before about 80 lines line that. > >>>> possible work arrounds include: >>>> >>>> 1/ Get gcc/lld to produce a library from which lld can find the >>>> symbols >>>> >>>> 2/ find a way to compile this with clang but everything else with >>>> gcc? >>>> >>>> 3/ find a way to allow clang to use >>>> -Wp,-E,-lang-asm >>>> >>>> whatever that means >>>> >>>> >>>> Thoughts from any tools people? > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?05c98785-4812-e519-5555-3d2315d28a1f>
