What else has flat_namespace in fink? I am only aware of two packages that absolutely have to be built with flat_namespace. Openmpi and the libXt shared lib for motif compatibility. Most everything else can be upgraded and are producing the flat_namespace linkages on 10.10 due to the broken configure files generated from the old buggy libtool.
On Tue, Apr 28, 2015 at 6:10 PM, TheSin <the...@southofheaven.org> wrote: > yeah I tried to build something with flat_namespace today just so I could see > the symbols file but the validator wouldn’t pass, I guess I could have turned > off -m though ;) I’ll try again since I just thought of that now. > --- > TS > http://www.southofheaven.org/ > Life begins and ends with chaos, live between the chaos! > >> On Apr 28, 2015, at 3:15 PM, Jack Howarth <howarth.at.f...@gmail.com> wrote: >> >> Note that we are using the absence of TWOLEVEL in the otool -hv output >> in Validation.pm... >> >> if (open (OTOOL, "$otool -hv '$dylib_temp' >> |")) { >> <OTOOL>; <OTOOL>; <OTOOL>; # >> skip first three lines >> unless ( <OTOOL> =~ /TWOLEVEL/ ) { >> print "Error: >> $dylib_temp appears to have been linked using a flat namespace.\n"; >> print " If this >> package BuildDepends on libtool2, make sure that you use\n"; >> print " >> BuildDepends: libtool2 (>= 2.4.2-4).\n"; >> print " and use >> autoreconf to regenerate the configure script.\n"; >> print " If the >> package doesn't BuildDepend on libtool2, you'll need to\n"; >> print " update >> its build procedure to avoid passing\n"; >> print " >> -Wl,-flat_namespace\n"; >> print " when >> linking libraries.\n"; >> $looks_good = 0; >> } >> close (OTOOL); >> } >> >> On Tue, Apr 28, 2015 at 5:12 PM, Jack Howarth <howarth.at.f...@gmail.com> >> wrote: >>> There are a couple of trivial tests for flat_namespace linkage. >>> >>> % /Library/Developer/CommandLineTools/usr/bin/dyldinfo -bind >>> /sw/lib/openmpi/libmpi.1.dylib >>> bind information: >>> segment section address type addend dylib >>> symbol >>> __DATA __got 0x001CC000 pointer 0 flat-namespace >>> _ADIOI_DFLT_ERR_HANDLER >>> __DATA __got 0x001CC008 pointer 0 flat-namespace >>> _ADIOI_Datarep_head >>> >>> or >>> >>> % otool -hv /sw/lib/openmpi/libmpi.1.dylib >>> /sw/lib/openmpi/libmpi.1.dylib: >>> Mach header >>> magic cputype cpusubtype caps filetype ncmds sizeofcmds flags >>> MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 17 1888 >>> DYLDLINK NO_REEXPORTED_DYLIBS >>> >>> where the absence of TWOLEVEL indicates flat_namespace linkage... >>> >>> % otool -hvi /sw/lib/libfftw3.3.dylib >>> /sw/lib/libfftw3.3.dylib: >>> Mach header >>> magic cputype cpusubtype caps filetype ncmds sizeofcmds flags >>> MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 15 1768 >>> NOUNDEFS DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS >>> >>> On Tue, Apr 28, 2015 at 1:46 PM, TheSin <the...@southofheaven.org> wrote: >>>> if we upgrade to my PR I think we could use the symbols files in the dpkg >>>> info die to find flat libs, I’m not 100% certain as I’d need an example to >>>> test, but if flat_namespace creates a symbol it would be possible, it >>>> could even be a trigger to process and sort all libs known to use >>>> flat_namespace, then just check that. Either options is pretty easy to do. >>>> --- >>>> TS >>>> http://www.southofheaven.org/ >>>> Life begins and ends with chaos, live between the chaos! >>>> >>>>> On Apr 28, 2015, at 11:14 AM, Alexander Hansen >>>>> <alexanderk.han...@gmail.com> wrote: >>>>> >>>>> >>>>>> On Apr 28, 2015, at 09:41, Alexander Hansen >>>>>> <alexanderk.han...@gmail.com> wrote: >>>>>> >>>>>> >>>>>>> On Apr 28, 2015, at 09:36, Jack Howarth <howarth.at.f...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>> Looking at the code, it seem we would have to do this check in sub >>>>>>> validate_dpkg_file and use global boolean called >>>>>>> skip_flat_namespace_check or such. In validate_dpkg_file, regex check >>>>>>> $dpkg_filename against both openmpi-shlibs_*.deb or openmpi_*.deb. If >>>>>>> either match, set skip_flat_namespace_check to true >>>>>>> and otherwise to false. Then add skip_flat_namespace_check as a >>>>>>> conditional in the... >>>>>>> >>>>>>> if (open (OTOOL, "$otool -hv '$dylib_temp' |")) { >>>>>>> >>>>>>> state that controls the flat namespace checks on each file. >>>>>>> >>>>>> >>>>>> As Daniel said, adding a new .info field (if that’s what you mean by >>>>>> global boolean) involves adding on another hack to the .deb control >>>>>> field for 2 packages out of more than 10000. For something that >>>>>> end-users never see. >>>>>> >>>>>> It’d be easier just to get Brendan to whitelist the packages for his >>>>>> auto builder. >>>>>> -- >>>>>> Alexander Hansen, Ph.D. >>>>>> Fink User Liaison >>>>>> >>>>> >>>>> Oh wait, I re-parsed that, so I think I understand better what you’re >>>>> getting at. And I don’t think it will work as intended, since I believe >>>>> $validate_dpkg_file is run only on actual .debs and not on root >>>>> directories before they get packed. >>>>> >>>>> In principle we could just check individual dylib’s names against a >>>>> whitelist of filename patterns and if they match we can skip the >>>>> flat_namespace check via a ‘next’. >>>>> >>>>> -- >>>>> Alexander Hansen, Ph.D. >>>>> Fink User Liaison >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> One dashboard for servers and applications across Physical-Virtual-Cloud >>>>> Widest out-of-the-box monitoring support with 50+ applications >>>>> Performance metrics, stats and reports that give you Actionable Insights >>>>> Deep dive visibility with transaction tracing using APM Insight. >>>>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >>>>> _______________________________________________ >>>>> Fink-devel mailing list >>>>> Fink-devel@lists.sourceforge.net >>>>> List archive: >>>>> http://news.gmane.org/gmane.os.apple.fink.devel >>>>> Subscription management: >>>>> https://lists.sourceforge.net/lists/listinfo/fink-devel >>>> > ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net List archive: http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel