On Mon, Apr 14, 2014 at 2:06 PM, Stefan Kaltenbrunner < ste...@kaltenbrunner.cc> wrote:
> On 04/13/2014 10:19 PM, John Mudd wrote: > > > > On Sun, Apr 13, 2014 at 12:04 PM, Euler Taveira <eu...@timbira.com.br > > <mailto:eu...@timbira.com.br>> wrote: > > > > On 13-04-2014 00:40, John Mudd wrote: > > > I built Postgres 9.3.4 from source on top of the musl C library, > > > http://www.musl-libc.org/ > > > I also built zlib, bzip2, ncurses, openssl, readline and Python > > using musl > > > as a foundation for Postgres. > > > > > This is not a bug. This kind of discussion belongs to -hackers. > > > > While reading this email, I give musl a try. I'm using Debian jessie > > which contains musl 1.0.0. I compiled the source (git master) using > > CC="musl-gcc" and disabled zlib and readline. It passed all > regression > > tests. I also tried a pgbench which ran like a charm. (After > installed > > the binaries I had to set the libray path for musl in > > /etc/ld-musl-x86_64.d.) > > > > > I'm using musl to increase the portability of the Postgres binary. > > I build > > > on Ubuntu 13.10 but will runs on older Linux boxes. > > > > > Could you give details about your architecture? > > > > > > Built on 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 > > i686 i686 i686 GNU/Linux > > Runs fine there. > > > > Moved postgres install directory to 2.4.21-4.EL #1 Fri Oct 3 18:13:58 > > EDT 2003 i686 i686 i386 GNU/Linux > > Not working fully there. > > Note: It's says 2.4 kernel but I've been told that's misleading. The > > kernel has upgrades that make it effectively 2.6. > > This looks like a RHEL3 version number, and while that kernel was kind > of creepy thing with a lot of patches (also from the 2.6 era) backport > it is definititly not a 2.6 kernel(also note that 2.6.0 was released in > december of 2003 while RHEL 3 was released in october that year. Juding > from the version number this also seems to be based on the very first > RHEL3 kernel missing all follow up bugfixed during the RHEL3 lifetime. > > So I would be very much not surprised if a modern and young C-library > running on a >10 year old kernel that never looked like the upstream > kernel misbehaved with a complex userspace app like postgresql. > > Update: I contacted musl developers, received a one line patch to the gettimeofday() fallback code, rebuilt the musl libc, copied the lib to my old linux box and Postgres is running well now. ======================= All 136 tests passed. ======================= It's interesting that when I built Postgres on this same old Linux but it fails to run. ============== removing existing temp installation ============== ============== creating temporary installation ============== ============== initializing database system ============== ============== starting postmaster ============== pg_regress: postmaster did not respond within 60 seconds Building with musl on a modern Linux works on an old Linux. But building Postgres on the old Linux with the native libc gives me a broken Postgres. That's why I'm interested in musl libc. > > > Stefan >