POV-Ray : Newsgroups : povray.unofficial.patches : POVRay 3.7 with depth-map unofficial patch release : Re: POVRay 3.7 with depth-map unofficial patch release Server Time
28 Apr 2024 01:40:38 EDT (-0400)
  Re: POVRay 3.7 with depth-map unofficial patch release  
From: jhu
Date: 10 Nov 2011 10:50:01
Message: <web.4ebbf277554df4f5d19b0ec40@news.povray.org>
Le_Forgeron <lef### [at] freefr> wrote:

>
> Even with "static", the issue on Linux (and that does not cover all
> unix), is the version of libc (which must remains shared);
> If you compile for a old libc, fresh system might not have it anymore.
> If you compile for a fresh libc, old system might not have it yet.
>

sThat is incorrect. For example, here's the ldd output of several programs on my
system:

$ ldd `which ls`
 linux-vdso.so.1 =>  (0x00007fff6dfab000)
 libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ffe5096f000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ffe50767000)
 libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007ffe5055e000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffe501da000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffe4ffd6000)
 /lib64/ld-linux-x86-64.so.2 (0x00007ffe50b9f000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ffe4fdb9000)
 libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007ffe4fbb5000)

$ ldd `which povray`
 not a dynamic executable

In the first instance, you'll notice that the program "ls" is dynamically linked
to libc.so.6. In the second instance you'll see that "povray" has everything
compiled into the binary. I used to run Linux From Scratch, and one of the first
stages is to cross-compile an initial statically linked system (even gcc!). At
that point, all programs on the system worked despite the lack of libc.

The only real issue is Linux version that the program is run. If the static
binary was compiled on a Linux 2.6.* system, it might not run on a Linux 2.2.*
system.


>
> Last but not least: the performance are better if you can compile for
> your architecture instead of having to compile in multiple mode with
> maximum compatibility (aka 32 bits is compiled for 86386, and 64 bits is
> compiled for the first generation of 64 bits...)

Yes, performance is better, but some people just don't want to bother. Why else
would there be official Windows, Mac, and Linux binaries? Otherwise Povray would
just be a source distribution only.

>
> (in fact, the performance is even better with the Intel compiler than
> with the gnu one, but that's another story)

That's debatable and depends on the processor.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.