GCC vs clang

Started by Greg Sabino Mullaneabout 15 years ago5 messages
#1Greg Sabino Mullane
greg@turnstep.com
1 attachment(s)

I've been trying to get clang working enough that I can at
least get HEAD going for a build farm client, and the attached
patch is the bare minimum to get it working. There may be a
better way to do this, but as indicated in a past thread, the
GNU_SOURCE variable does not play nicely with clang. Getting that
removed does allow me to do a working make and make check. The make
takes orders of magnitude longer than gcc does, but that's an
issue for another day.

--
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 201011160940
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8

Attachments:

postgres.clangtext/plain; charset=us-asciiDownload
diff --git a/src/template/linux b/src/template/linux
index 3eb5ad2..527a559 100644
--- a/src/template/linux
+++ b/src/template/linux
@@ -1,7 +1,9 @@
 # src/template/linux
 
 # Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise
-CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+if "$CC" = "gcc" ; then
+  CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+fi
 
 # If --enable-profiling is specified, we need -DLINUX_PROFILE
 PLATFORM_PROFILE_FLAGS="-DLINUX_PROFILE"
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Sabino Mullane (#1)
Re: GCC vs clang

Greg Sabino Mullane <greg@turnstep.com> writes:

I've been trying to get clang working enough that I can at
least get HEAD going for a build farm client, and the attached
patch is the bare minimum to get it working. There may be a
better way to do this, but as indicated in a past thread, the
GNU_SOURCE variable does not play nicely with clang. Getting that
removed does allow me to do a working make and make check. The make
takes orders of magnitude longer than gcc does, but that's an
issue for another day.

What happens to plperl?

regards, tom lane

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Greg Sabino Mullane (#1)
Re: GCC vs clang

On tis, 2010-11-16 at 09:41 -0500, Greg Sabino Mullane wrote:

I've been trying to get clang working enough that I can at
least get HEAD going for a build farm client, and the attached
patch is the bare minimum to get it working. There may be a
better way to do this, but as indicated in a past thread, the
GNU_SOURCE variable does not play nicely with clang. Getting that
removed does allow me to do a working make and make check. The make
takes orders of magnitude longer than gcc does, but that's an
issue for another day.

The underlying issue in clang has been resolved, so the next release
should work out of the box. I suggest we wait for that.

http://llvm.org/bugs/show_bug.cgi?id=5365

#4Greg Sabino Mullane
greg@turnstep.com
In reply to: Peter Eisentraut (#3)
Re: GCC vs clang

-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

Tom asked:

What happens to plperl?

It still doesn't work. I was going to leave it out via --without-perl,
and save fixing that for another day. There's a handful of other
warnings when making, but --with-perl is the only showstopper
(once the GNU_SOURCE problem is solved).

Peter chimed in:

The underlying issue in clang has been resolved, so the next release
should work out of the box. I suggest we wait for that.

http://llvm.org/bugs/show_bug.cgi?id=5365

Sweet, good to know. I'll update my clang repo and see if it does the
trick.

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 201011161302
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAkzix3IACgkQvJuQZxSWSsgKxQCgl2vbUGS9plb1Zm7Sg+sdKR+5
oIUAn0CI9Dky2bQsYkoPhV6yZrQWosvQ
=f0+q
-----END PGP SIGNATURE-----

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Sabino Mullane (#4)
Re: GCC vs clang

"Greg Sabino Mullane" <greg@turnstep.com> writes:

Tom asked:

What happens to plperl?

It still doesn't work. I was going to leave it out via --without-perl,
and save fixing that for another day. There's a handful of other
warnings when making, but --with-perl is the only showstopper
(once the GNU_SOURCE problem is solved).

I'm hesitant to put in a patch that breaks plperl, even if it's for
a situation where you otherwise couldn't build at all; because plperl
would still be broken after the clang problem is resolved.

Better to get a fixed copy of clang.

regards, tom lane