[3.3 Release] 3.3rc3 Now Available

Hi LLVM-ites!

We are doing a quick test of 3.3rc3. Our testers did a quick turn around and created binaries which you can test. Please give them a go and let us know how they work for you. They are here:

  http://llvm.org/pre-releases/3.3/rc3

We don't have a lot of time remaining in the release cycle, so please do whatever you can to make sure they are solid. In particular, make sure that they solve the PRs that were reported during the release (http://llvm.org/bugs/show_bug.cgi?id=15999).

Share and enjoy!
-bw

Hi Bill,

I was running some benchmarks and was surprised that the startup
performance of your binaries is much worse than the stable binaries
for 3.2

I've used:
http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz
vs
http://llvm.org/pre-releases/3.3/rc3/clang+llvm-3.3rc3-Ubuntu-12.04.2-x86_64.tar.gz

On a simple hello.c file:
/ssd/bench$ TIMEFORMAT="%E"
/ssd/bench$ for I in `seq 1 5`; do \
  time /ssd/llvm3.2/bin/clang -c hello.c; \
  done
0.015
0.014
0.013
0.013
0.013

/ssd/bench$ for I in `seq 1 5`; do \
  time /ssd/llvm3.3rc/bin/clang -c hello.c; \
  done
0.992
0.978
0.982
0.981
0.976

Is this an expected behaviour (e.g. +Asserts or Debug build)
or a real regression?

P.s.
I'm not very familiar with the Clang release process, so I might be
missing something obvious...

It's probably PR12517.

Looking at the clang binary, it's got a /home/ dir in RPATH:

$ objdump -p clang+llvm-3.3rc3-Ubuntu-12.04.2-x86_64/bin/clang | grep RPATH
  RPATH
$ORIGIN/../lib:/home/aadgrand/tmp/LLVM-3.3rc3/rc3/Phase3/Release+Asserts/llvmCore-3.3-rc3.obj/Release+Asserts/bin

This will slow things down if the system tries to automount /home/aadgrand.

Maybe we should merge r182559 to the release branch? Or at least we
should take care not to build it in a /home directory.

- Hans

The 3.3rc1 and 3.3rc2 pre-releases had libcxx tarballs, but 3.3rc3
doesn't have one (yet?). Is that intentional?

(It also seems odd that the file naming changed from
foo-3.3rc2-sources.tar.gz to foo-source-3.3rc3.tar.gz, but no big
deal.)

Interesting. I was not aware of this --- I will build the release somewhere
else, in the hope it is not an automount point, which is very likely for
/home.

Cheers,

It was not intentional. But we're going to tag the final release soon. So it's okay to skip it for now...Sorry for the omission.

-bw

It's probably PR12517.

Looking at the clang binary, it's got a /home/ dir in RPATH:

$ objdump -p clang+llvm-3.3rc3-Ubuntu-12.04.2-x86_64/bin/clang | grep RPATH
RPATH
$ORIGIN/../lib:/home/aadgrand/tmp/LLVM-3.3rc3/rc3/Phase3/Release+Asserts/llvmCore-3.3-rc3.obj/Release+Asserts/bin

This will slow things down if the system tries to automount /home/aadgrand.

Maybe we should merge r182559 to the release branch? Or at least we
should take care not to build it in a /home directory.

We won't be merging any more patches into the branch. We're basically done with it now. We just need to create the final binaries.

The regression isn't expected, of course. I hope it's what Hans described... :slight_smile:

-bw

I’m not sure I follow. Will the final binaries have a bad RPATH or not? A 1sec startup pause on some (admittedly crazy) systems seems like a big deal to me.

As I understand it, it will have the build directory in RPATH, but as
long as the release is not built in /home, it should be fine.

- Hans

To mitigate the problem, I can use a less problematic install_path
(/opt/llvm-3.3 ?) --- which does not prevent a user from installing the
tarball somewhere else, but at least the automounter will not kick-in.

The second point is : for the final release, the package should better
be a real package (.deb or whatever) instead of a raw tarball, so that
it installs and works smoothly on Ubuntu 10.04 and 12.04. Unfortunately,
I do not know how to generate those, but I would gladly follow some
instructions :slight_smile:

Cheers,

On 06/06/2013 18:04, Hans Wennborg wrote:> It's probably PR12517.

Looking at the clang binary, it's got a /home/ dir in RPATH:

$ objdump -p clang+llvm-3.3rc3-Ubuntu-12.04.2-x86_64/bin/clang | grep

RPATH

  RPATH

$ORIGIN/../lib:/home/aadgrand/tmp/LLVM-3.3rc3/rc3/Phase3/Release+Asserts/llvmCore-3.3-rc3.obj/Release+Asserts/bin
To avoid such behavior [1] , in Debian and Ubuntu packages, I am doing:

chrpath -d $(TARGET_BUILD)/Release/bin/clang
chrpath -d `find $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/bin/
-type f -executable`

Sylvestre
[1] http://wiki.debian.org/RpathIssue

Scrubbing it after the fact from the binary also works.