Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Dec 2012 10:34:29 +0100
From:      "Paul Maulberger" <Paul.Maulberger@gmx.de>
To:        freebsd-performance@freebsd.org
Cc:        mm@FreeBSD.org
Subject:   FreeBSD 9.1 and how to map the libraries form gcc47?
Message-ID:  <20121231093429.22540@gmx.net>

next in thread | raw e-mail | index | archive | help
Hi folks,

I'm using FreeBSD 9.1 Release with custom kernels. Kernel and userland are compiled with the base compiler (gcc 4.2.1).

My whole project needs a few fast servers. If I compile my own source and libgmp with gcc47 (and optimization for XEON Sandy-Bridge) my executables are significant faster. Compared to gcc42 I would save money as I need fewer servers.

My first goal is a very stable system, after that a fast one.

Using the same library in different versions (e.g. /usr/lib/libgcc_s.so.1 and /usr/local/lib/gcc47/libgcc_s.so.1) makes me a little bit nervous.

The following links are a good starting point.
http://www.freebsd.org/doc/en/articles/custom-gcc/article.html
http://forums.freebsd.org/showthread.php?t=28054

Following '3.2 Adjusting libmap.conf' from the first link I should map all gcc libraries to the new ones. So that every executable (also userland) will use the libraries from gcc47. Is that safe?

In the second link the ld option 'rpath' is mentioned.

Now I have a few alternatives:

a) Always use gcc 4.2.1 and buy enough hardware. The other options are risky.

b1) Compile only the own projects and libgmp with gcc47 and use the rpath option.

b2) Compile only the own projects and libgmp with gcc47 and use mapping with /etc/libmap.conf only for own project executables.

b3) Compile only the own projects and libgmp with gcc47 and use mapping with /etc/libmap.conf for all executables.

c1) Compile own projects and all ports with gcc47 and use the rpath option.

c2) Compile own projects and all ports with gcc47 and use mapping with /etc/libmap.conf only for own project executables and port executables.

c3) Compile own projects and all ports with gcc47 and use mapping with /etc/libmap.conf for all executables.

d) Switch the base compiler to gcc47 and recompile kernel, userland, ports and own projects.

e) Other alternative.

Which way should I go?

Thanks for your comments and a happy new year.

Regards
Paul



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121231093429.22540>