Dear Peter,

-static-libgcc would statically link the compiler's library 
/lib64/libgcc_s.so.1 . The version of that is 4.8.5 on my CentOS-7 machine. 
Newer distros have a newer version of that, but on all Linux machines there 
appears to exist such a library (because the system-provided tools also need 
it) which is why it's typically not necessary to use -static-libgcc on Linux.

This library is different from what you write about, which is the system's 
glibc library /lib64/libc.so.6 , the version of which is 2.17 on my CentOS-7 
machine. There is no specific compiler flag like -static-libc to statically 
link that.  Binaries that I produce on this machine don't run on old distros 
which have a lower glibc version, e.g. 2.12 in case of CentOS-6. 

I use a CentOS-6 virtual machine to produce binaries for others, Wolfgang 
Kabsch a SuSe distro of similar "age".

Best,

Kay

On Wed, 9 Oct 2019 10:08:39 +0100, Peter Keller <pkel...@globalphasing.com> 
wrote:

>Dear Kay, all,
>
>On 09/10/2019 09:19, Kay Diederichs wrote:
>> Dear George,
>>
>> I don't see a need for static binaries.
>>
>> We link the XDS package dynamically with
>> ifort -static-intel -qopenmp-link=static
>> on a rather old system, and this seems to work for all XDS users.
>
>Indeed:
>
>>     % ldd xds_par
>>     linux-vdso.so.1 (0x00007fffcbfc6000)
>>     libm.so.6 => /lib64/libm.so.6 (0x00007f17a142a000)
>>     libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f17a120c000)
>>     libdl.so.2 => /lib64/libdl.so.2 (0x00007f17a1008000)
>>     libc.so.6 => /lib64/libc.so.6 (0x00007f17a0c4e000)
>>     libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f17a0a36000)
>>     /lib64/ld-linux-x86-64.so.2 (0x00007f17a1762000)
>
>> One could add -static-libgcc but apparently this is not necessary.
>
>In your case it might be harmful to do this. If the version of libgcc
>provided by your system is older than 2.15 (very likely), you might hit
>exactly the same problem with Debian 10 as we are now discussing. I'm
>not 100% sure of this because your executables are not static, but if I
>were you I would keep things as they are.
>
>Regards,
>
>Peter.
>
>>
>> best wishes,
>> Kay
>>
>> On Tue, 8 Oct 2019 12:21:07 +0200, George Sheldrick 
>> <gshe...@uni-goettingen.de> wrote:
>>
>>> As explained in the attached email from Peter Keller, I was deliberately
>>> preparing the binary Linux SHELX distribution using older (2011) system
>>> libraries so that the programs would run on older systems that many
>>> users are still using. Unfortunately this means that they do not run on
>>> some recent cutting edge distributions including Debian 10. This can be
>>> fixed with 'vsyscall=emulate' when installing the OS but not all users
>>> may be allowed to do this. Dynamic binaries would be smaller but would
>>> require the user to provide the right libraries.
>>>
>>> If I prepare statically linked binaries (using the latest ifort and
>>> ubuntu) they appear to run on current systems but may have problems on
>>> older systems. I may have to offer (e.g. in CCP4 and on the SHELX
>>> server) two sets of Linux binaries in the future, one for 'vintage'
>>> systems and one for current systems. Alternatively I could provide both
>>> statically and dynamically linked versions. What do users think?
>>>
>>> Best wishes, George
>>>
>>>
>>> On 08.10.19 11:04, Peter Keller wrote:
>>>> HI Tim,
>>>>
>>>> On Mon, 7 Oct 2019, Tim Gruene wrote:
>>>>
>>>>> Date: Mon, 07 Oct 2019 23:04:28 +0200
>>>>> From: Tim Gruene <tim.gru...@univie.ac.at>
>>>>> To: Peter Keller <pkel...@globalphasing.com>
>>>>> Cc: CCP4BB@jiscmail.ac.uk
>>>>> Subject: Re: [ccp4bb] Shelx and debian 10
>>>>>
>>>>
>>>>> @Peter: are you sure that without 'vsyscall=emulate' linux binaries
>>>>> need to be
>>>>> dynamically linked? I would be very surprised if the linux kernel would
>>>>> disable statically linked binaries. I rather think that the vanilla
>>>>> versions
>>>>> of shelx c/d/e (from shelx.uni-goettingen.de) are compiled with an
>>>>> obsolete
>>>>> compiler / obsolete compiler options.
>>>> You're right, I wrote my reply to Bernhard too rapidly, and conflated
>>>> two separate issues. Debian 10 still supports static binaries of
>>>> course, but in its default configuration (without vsyscall=emulate),
>>>> those static binaries must be linked with a version of glibc that
>>>> doesn't require vsyscalls. OTOH, dynamic binaries don't suffer from
>>>> this problem, because they can use vDSO provided by the running
>>>> (rather than the build) system.
>>>>
>>>> I think that part of the problem is that traditionally when we want to
>>>> build portable linux binaries, we tend to build on the oldest
>>>> distribution that we want to support, relying on backwards
>>>> compatibility to provide the portability that we are after. We often
>>>> build statically, because it is a robust way of including all the
>>>> required libraries and is less fiddly and error-prone than providing
>>>> them as dynamic libraries. There is also no danger of breakage caused
>>>> by rogue values of LD_LIBRARY_PATH (which users shouldn't be setting
>>>> of course, but we have no way of stopping them). The drawback of this
>>>> approach is that when backwards compatibility is broken, there is no
>>>> application-level fix.
>>>>
>>>> These kinds of problems are rare, but when they do happen the onus is
>>>> on those of us who distribute binary applications to find solutions.
>>>> Some sysadmins may have good reasons for being reluctant to change
>>>> kernel parameters to get third-party applications to work.
>>>>
>>>> Regards,
>>>> Peter.
>>>>
>>>>>
>>>>> On Monday, October 7, 2019 5:53:44 PM CEST Peter Keller wrote:
>>>>>> Dear Bernhard,
>>>>>>
>>>>>> We had this issue drawn to our attention last year by an early adopter
>>>>>> of Debian 10 while it was still in testing. I thought that it was a
>>>>>> bug,
>>>>>> and submitted a report accordingly here:
>>>>>> <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=889965>. I was told
>>>>>> that it is not a bug, but a feature ;-)
>>>>>>
>>>>>> If you are able, you could try setting the kernel parameter
>>>>>> vsyscall=emulate. In the longer term, SHELXC/D/E will have to be
>>>>>> rebuilt
>>>>>> to support systems where the vsyscall has been disabled. This means
>>>>>> they
>>>>>> have to be dynamic executables that include the following in the output
>>>>>> of 'ldd':
>>>>>>
>>>>>> % ldd /bin/bash
>>>>>>       linux-vdso.so.1 (0x00007fff50952000)
>>>>>>       ....
>>>>>>
>>>>>> All current distros use vDSO, so this shouldn't cause portability
>>>>>> problems by itself, but handling dynamic executables can be trickier
>>>>>> than static ones.
>>>>>>
>>>>>> For a little more background, see <https://lwn.net/Articles/446528/>
>>>>>>
>>>>>> Finally, you have my commiserations: although this change has been a
>>>>>> long time coming, it hasn't attracted a lot of attention. It was bound
>>>>>> to catch users of static executables by surprise.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Peter.
>>>>>>
>>>>>> On 07/10/2019 16:05, Bernhard Rupp wrote:
>>>>>>> Hi Fellows,
>>>>>>>
>>>>>>> we updated to Debian 10 on the local workshop computers, and
>>>>>>> reinstalled
>>>>>>>
>>>>>>> Coot and ccp4. All fine.
>>>>>>>
>>>>>>> Problem: Shelxc/d/e/  does not run, and
>>>>>>>
>>>>>>> the call exits immediately sans any message.
>>>>>>>
>>>>>>> This holds for the binaries included in ccp4 as well as for those from
>>>>>>> the SHELX site.
>>>>>>>
>>>>>>> The executables from CCP4 and SHELX site – same file size, probably
>>>>>>> same - run fine under Debian 9.
>>>>>>>
>>>>>>> I suspect a library problem.
>>>>>>>
>>>>>>> Does some kind soul have CDE binaries for Debian 10 to share?
>>>>>>>
>>>>>>> Many thx in advance, BR
>>>>>>>
>>>>>>> --------------------------------------------------------------------------
>>>>>>>
>>>>>>> --------------
>>>>>>>
>>>>>>> Bernhard Rupp
>>>>>>>
>>>>>>> Department of Genetics and Pharmacology
>>>>>>>
>>>>>>> Institute of Genetic Epidemiology
>>>>>>>
>>>>>>> Medical University Innsbruck
>>>>>>>
>>>>>>> Schöpfstrasse 41
>>>>>>>
>>>>>>> A 6020 Innsbruck – Austria
>>>>>>>
>>>>>>> +43 (676) 571-0536
>>>>>>>
>>>>>>> bernhard.r...@i-med.ac.at
>>>>>>>
>>>>>>> --------------------------------------------------------------------------
>>>>>>>
>>>>>>> --------------
>>>>>>>
>>>>>>> k.k. Hofkristallamt
>>>>>>>
>>>>>>> San Diego, CA 92084
>>>>>>>
>>>>>>> 001 (925) 209-7429
>>>>>>>
>>>>>>> b...@ruppweb.org
>>>>>>>
>>>>>>> b...@hofkristallamt.org
>>>>>>>
>>>>>>> http://www.ruppweb.org/
>>>>>>>
>>>>>>> -----------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>> To unsubscribe from the CCP4BB list, click the following link:
>>>>>>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>>>>>
>>> --
>>> Prof. George M. Sheldrick FRS
>>> Dept. Structural Chemistry
>>> University of Goettingen
>>> Tammannstr.  4
>>> D37077 Goettingen
>>> Germany
>>> Tel: +49 551 3933021 or +49 5594 227312
>>>
>>> ########################################################################
>>>
>>> To unsubscribe from the CCP4BB list, click the following link:
>>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> ########################################################################
>>
>> To unsubscribe from the CCP4BB list, click the following link:
>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>
>--
>Peter Keller                             Tel.: +44 (0)1223 353033
>Global Phasing Ltd.,                     Fax.: +44 (0)1223 366889
>Sheraton House,
>Castle Park,
>Cambridge CB3 0AX
>United Kingdom
>
>
>########################################################################
>
>To unsubscribe from the CCP4BB list, click the following link:
>https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>

########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1

Reply via email to