Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 02:17:48 +0100 Ciaran McCreesh [EMAIL PROTECTED] wrote: On Sat, 31 May 2008 03:03:42 +0200 Luca Barbato [EMAIL PROTECTED] wrote: Ciaran McCreesh wrote: Which is where the design flaw is -- as-needed incorrectly assumes that the only type of dependency between shared objects is a name dependency. This isn't true with C++ static initialisers. I don't see why should be different than abusing .init in any other language that let you do (ok, C, C++, asm mostly). In C++ it's not abuse. It's using the language as specified and designed. Would that be possible for you (or anyone else) to point or provide example of code that breaks after use of as-needed? -- Michal Kurgan http://dev.gentoo.org/~moloh -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Saturday 31 May 2008 00:16:31 Ciaran McCreesh wrote: Ok, then everything in the tree is covered and we can move to having --as-needed as default. Is the next version of everything in the tree covered? Have you made sure that software isn't merely working by fluke? We interupt this thread with breaking news! A troll claims that future software packages may break! This reporter sure hopes that the developers in question actually tests packages before they commit. I, for one, welcome our new --as-needed Overlords. Is Gentoo really that desperate to turn everyone into a ricer? Everyones ride should be pimped. Thanks Roy -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
В Птн, 30/05/2008 в 20:28 -0700, Brian Harring пишет: Either way, basically it's coming down to if gentoo wants to follow the definition of 'academic' right, or 'pragmatic' right. Exempting ciaran, vote seems to be pragmatic. Well, although I've asked about problems with having --as-needed by default, I'd better go with academic. C++ is quite common language to ignore its design problems and in the end it's not hard to define LDFLAGS in make.conf. -- Peter. -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Saturday 31 May 2008 11:14:33 Luca Barbato wrote: Ciaran McCreesh wrote: Fact: the underlying issue is a libtool bug. Wrong, it isn't just that, --as-needed and libtool are unrelated. The issue that as-needed tries to solve is libraries being linked to binaries or other libraries that don't use said library directly. While it's true that libtool isn't the only cause, it does produce by far the most. Fact: as-needed does not fix this bug. It attempts to work around it. Wrong, --as-needed does exactly what is supposed to do, precise bookkeeping. It does do what it's supposed to do, unfortunately what it's supposed to do isn't the right thing in all cases. And it's not precise, it simply uses a different criterion that's better in some cases and worse in others. Fact: as-needed breaks standard-compliant code. Wrong, --as-needed breaks disputable code that happens to be standard-compliant by a specific read of the standard. The fact the specific code is something wrong from the security/style/maintainability point makes it a bonus. No-one's given any reason why it's disputable, worse style or less maintainable, other than it doesn't work with --as-needed, quite a circular argument. As for security... please show evidence, or I'll have to assume that that's just desperate FUD. Fact: fixing the libtool bug would give all the benefits purportedly given by using as-needed, without the drawbacks. Wrong, fixing libtool gives other benefits, so it's worth trying to fix it as well. The new autotools and proper usage of them makes life easier so it's worth improving on this side. I really don't see what you're trying to say there -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Peter Volkov wrote: В Птн, 30/05/2008 в 20:28 -0700, Brian Harring пишет: Either way, basically it's coming down to if gentoo wants to follow the definition of 'academic' right, or 'pragmatic' right. Exempting ciaran, vote seems to be pragmatic. Well, although I've asked about problems with having --as-needed by default, I'd better go with academic. C++ is quite common language to ignore its design problems and in the end it's not hard to define LDFLAGS in make.conf. To clarify: - static initializers (as in __attribute__((constructor), so no, it isn't a C++ only feature) have nothing wrong with --as-needed. - ugly code that refers to undefined symbols that are resolved to ones from the main binary and written in the constructor is broken already in systems not allowing undefined refs. - you don't have guarantees about the order in witch the .init sections are parsed and constructor function are called, they can be called in parallel and you have no means to have a predictable behavior, all you know is that everything will be called right before main() or as the first thing in dlopen(). - doing such stuff is uncommon since it isn't the simplest thing to do, doesn't work in every place, you have to be particular perverse and convoluted even to think about this. - making such thing go away is good for security, maintainability and sanity. lu -- Luca Barbato Gentoo Council Member Gentoo/linux Gentoo/PPC http://dev.gentoo.org/~lu_zero -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
A. Convince the portage developers to put it in make.conf/make.defaults. By the way, I'm strongly opposed to this: it should be, at best, in the profiles. For instance, as long as bug #192403 isn't fixed, as-needed will cause *a lot* of build failures on fbsd since gcc specs are broken and wont append the -lc for shared libraries and -lpthread when -pthread is used if I remember correctly. Regards, Alexis. signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 04:26:39 -0700 Alec Warner [EMAIL PROTECTED] wrote: Just to jump in quickly; this thread is about adding --as-needed to the default CFLAGS. To get this accomplished you need to: A. Convince the portage developers to put it in make.conf/make.defaults. Wrong. We don't control make.conf (the user does) or make.defaults (profile maintainers do). We only control make.conf.example (which these days only serves as documentation) and make.globals (which isn't the right place for any arch-specific stuff, and CFLAGS are arch-specific by definition). Marius -- gentoo-dev@lists.gentoo.org mailing list
[gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On R, 2008-05-30 at 22:37 +0100, Ciaran McCreesh wrote: On Sat, 31 May 2008 00:31:22 +0300 Mart Raudsepp [EMAIL PROTECTED] wrote: On R, 2008-05-30 at 20:20 +0100, Ciaran McCreesh wrote: On Fri, 30 May 2008 21:13:32 +0200 Luca Barbato [EMAIL PROTECTED] wrote: Talk to the upstream about this, probably getting a satisfying solution isn't that difficult. The solution is to use --as-needed in the same way that -ffast-math is used: only with applications specifically designed to support it. You mean everything but paludis? Paludis is fine with as-needed. But hey, don't let reality get in the way of your pathetic attempts at turning everything into Paludis bashing. It happens to be the only package that I know of that couldn't be fixed to work with --as-needed (fix for others being to actually state linking with a library whose symbols are directly used). I have not heard of anything else. Doesn't your grand plan include supporting Prefix and Interix with PE binaries and so on? I have no particular interest in supporting any platform that can't ship a Standard-compliant C++ environment. That doesn't mean Gentoo progress, in maintainability of a running system through the ease of ABI breaks meaning magnitudes of less recompilations, should be inhibited. I know projects that need to work around static initialization not being reliable - they only happen to have done that for other reasons (such as Windows PE format, iirc) years before --as-needed was implemented for binutils. Standards is one thing - reality is something quite different. The reality is that everything designed to work everywhere is just mighty happy with --as-needed and lots of benefits to gain from it. And twenty years ago C++ had to work around linkers that only supported eight character symbol names. Reality moves forward, except in situations like these where people try to rice it backwards. Maybe you'd like to tell that to the authors of the platforms that don't support this extreme corner case, but are amongst the platforms that we do somewhat support in Gentoo? The story that matters here is, that a C++ corner case that does not work on 0.01% of packages with --as-needed and breaks on non-ELF platforms, should not cause good things for our users to be shot down. 99.9% packages in the tree work just great with --as-needed with many benefits, including ABI break pain reduction (and less importantly memory savings from dirty library private memory pages), so given that percentage the default should be what makes things better for users with exceptions for those tiny percentage of packages that fall into the corner case (that break on more exotic platforms anyway and arguably should be fixed). Portage developers - is there anything we should do to get --as-needed to make.conf.example and other places, beyond fixing the known bugs on the appropriate bug tracker? -- Mart Raudsepp Gentoo Developer Mail: [EMAIL PROTECTED] Weblog: http://planet.gentoo.org/developers/leio -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On 22:53 Fri 30 May , Ciaran McCreesh wrote: On Sat, 31 May 2008 00:47:44 +0300 Mart Raudsepp [EMAIL PROTECTED] wrote: The story that matters here is, that a C++ corner case that does not work on 0.01% of packages with --as-needed and breaks on non-ELF platforms, should not cause good things for our users to be shot down. You could say the same thing for -ffast-math... When there's a feature that only breaks one package that we know of, wouldn't it make more sense to enable it globally and add an exception than to do it the other way around? I see that a number of packages in the tree explicitly filter -ffast-math. Thanks, Donnie -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Fri, 30 May 2008 15:07:43 -0700 Donnie Berkholz [EMAIL PROTECTED] wrote: On 22:53 Fri 30 May , Ciaran McCreesh wrote: On Sat, 31 May 2008 00:47:44 +0300 Mart Raudsepp [EMAIL PROTECTED] wrote: The story that matters here is, that a C++ corner case that does not work on 0.01% of packages with --as-needed and breaks on non-ELF platforms, should not cause good things for our users to be shot down. You could say the same thing for -ffast-math... When there's a feature that only breaks one package that we know of, wouldn't it make more sense to enable it globally and add an exception than to do it the other way around? Both -ffast-math and --as-needed make the compiler / linker violate various standards in ways that can't be used safely unless a package has been explicitly designed to work with it. For packages that have been explicitly designed to work with either, upstream can add the options to the build system themselves. For packages that haven't, it's not Gentoo's place to try to guess whether upstream has designed their software with ricer flags in mind, and whether if it works by fluke now it'll still work in the next version. I see that a number of packages in the tree explicitly filter -ffast-math. That's mostly from the bad old days when users were encouraged to use silly CFLAGS... -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: On Sat, 31 May 2008 00:47:44 +0300 Mart Raudsepp [EMAIL PROTECTED] wrote: Paludis is fine with as-needed. But hey, don't let reality get in the way of your pathetic attempts at turning everything into Paludis bashing. It happens to be the only package that I know of that couldn't be fixed to work with --as-needed (fix for others being to actually state linking with a library whose symbols are directly used). I have not heard of anything else. Except that Paludis is fine with --as-needed. Ok, then everything in the tree is covered and we can move to having --as-needed as default. lu -- Luca Barbato Gentoo Council Member Gentoo/linux Gentoo/PPC http://dev.gentoo.org/~lu_zero -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 01:08:21 +0200 Luca Barbato [EMAIL PROTECTED] wrote: Except that Paludis is fine with --as-needed. Ok, then everything in the tree is covered and we can move to having --as-needed as default. Is the next version of everything in the tree covered? Have you made sure that software isn't merely working by fluke? Is Gentoo really that desperate to turn everyone into a ricer? I'd bet you could get a pretty long way by shoving -ffast-math into CFLAGS by default before anyone would notice... -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: On Fri, 30 May 2008 15:07:43 -0700 Donnie Berkholz [EMAIL PROTECTED] wrote: On 22:53 Fri 30 May , Ciaran McCreesh wrote: On Sat, 31 May 2008 00:47:44 +0300 Mart Raudsepp [EMAIL PROTECTED] wrote: The story that matters here is, that a C++ corner case that does not work on 0.01% of packages with --as-needed and breaks on non-ELF platforms, should not cause good things for our users to be shot down. You could say the same thing for -ffast-math... When there's a feature that only breaks one package that we know of, wouldn't it make more sense to enable it globally and add an exception than to do it the other way around? Both -ffast-math and --as-needed make the compiler / linker violate various standards in ways that can't be used safely unless a package has been explicitly designed to work with it. I know exactly which standard -ffast-math violates (IEEE/ISO floating point spec) and how (the man page is quite complete about this), --as-needed doesn't have any warning about this, there isn't any standard that it violates since it's the default behavior at least for 2 platform (one from those who wrote most of the ELF spec...). Point the spec, and the paragraph violated. lu -- Luca Barbato Gentoo Council Member Gentoo/linux Gentoo/PPC http://dev.gentoo.org/~lu_zero -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: I'd bet you could get a pretty long way by shoving -ffast-math into CFLAGS by default before anyone would notice... Non sequitur. We are talking about --as-needed, not -ffast-math. -- Luca Barbato Gentoo Council Member Gentoo/linux Gentoo/PPC http://dev.gentoo.org/~lu_zero -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 01:13:58 +0200 Luca Barbato [EMAIL PROTECTED] wrote: I know exactly which standard -ffast-math violates (IEEE/ISO floating point spec) and how (the man page is quite complete about this), --as-needed doesn't have any warning about this, there isn't any standard that it violates since it's the default behavior at least for 2 platform (one from those who wrote most of the ELF spec...). Point the spec, and the paragraph violated. ISO/IEC 14882:1998 section 3.7.1 paragraph 2. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 12:26:44AM +0100, Ciaran McCreesh wrote: On Sat, 31 May 2008 01:13:58 +0200 Luca Barbato [EMAIL PROTECTED] wrote: I know exactly which standard -ffast-math violates (IEEE/ISO floating point spec) and how (the man page is quite complete about this), --as-needed doesn't have any warning about this, there isn't any standard that it violates since it's the default behavior at least for 2 platform (one from those who wrote most of the ELF spec...). Point the spec, and the paragraph violated. ISO/IEC 14882:1998 section 3.7.1 paragraph 2. Might want to confirm it's in 14882:2003, since the '98 was withdrawn... ~harring pgpR1x14Lvqq4.pgp Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Fri, 30 May 2008 16:43:38 -0700 Brian Harring [EMAIL PROTECTED] wrote: ISO/IEC 14882:1998 section 3.7.1 paragraph 2. Might want to confirm it's in 14882:2003, since the '98 was withdrawn... ~harring It's in all the way up to the current 0x draft. It even has the same section and paragraph number. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: On Sat, 31 May 2008 01:13:58 +0200 Luca Barbato [EMAIL PROTECTED] wrote: I know exactly which standard -ffast-math violates (IEEE/ISO floating point spec) and how (the man page is quite complete about this), --as-needed doesn't have any warning about this, there isn't any standard that it violates since it's the default behavior at least for 2 platform (one from those who wrote most of the ELF spec...). Point the spec, and the paragraph violated. ISO/IEC 14882:1998 section 3.7.1 paragraph 2. If an object of static storage duration has initialization or a destructor with side effects, it shall not be eliminated even if it appears to be unused, except that a class object or its copy may be eliminated as specified in 12.8. Unchanged in the 2003 revision. Is that related to linking? I don't think so. Still, PE and ELF are older than the first C++ spec so, IFF your reading of this chapter is correct, C++ is broken by design. lu -- Luca Barbato Gentoo Council Member Gentoo/linux Gentoo/PPC http://dev.gentoo.org/~lu_zero -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 01:54:45 +0200 Luca Barbato [EMAIL PROTECTED] wrote: ISO/IEC 14882:1998 section 3.7.1 paragraph 2. If an object of static storage duration has initialization or a destructor with side effects, it shall not be eliminated even if it appears to be unused, except that a class object or its copy may be eliminated as specified in 12.8. Unchanged in the 2003 revision. Is that related to linking? I don't think so. Linking with as-needed is the stage in which the elimination occurs, and as-needed is the cause of the elimination. So yes, it is related. Still, PE and ELF are older than the first C++ spec so, IFF your reading of this chapter is correct, C++ is broken by design. Not at all. Read The Design and Evolution of C++, and you shall see that requiring changes to the linker where necessary for sensible behaviour was considered acceptable, and with good reason. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 02:17:15 +0200 Luca Barbato [EMAIL PROTECTED] wrote: Ciaran McCreesh wrote: Linking with as-needed is the stage in which the elimination occurs, and as-needed is the cause of the elimination. So yes, it is related. The linker just does bookkeeping, if there aren't symbols used, the library won't be in the list. Which is where the design flaw is -- as-needed incorrectly assumes that the only type of dependency between shared objects is a name dependency. This isn't true with C++ static initialisers. Still, PE and ELF are older than the first C++ spec so, IFF your reading of this chapter is correct, C++ is broken by design. Not at all. Read The Design and Evolution of C++, and you shall see that requiring changes to the linker where necessary for sensible behaviour was considered acceptable, and with good reason. As in we have a square wheels, let's make routes for them... More like getting the linker right is important enough to us that we'll pester people to make their wheels at least octagonal rather than the current square. Unfortunately, as-needed is moving back to square. Anyway is the book a standard? Is it available as pdf so you can point me the exact paragraph? The book is an explanation of why the standard is the way it is. You can find it at your local library. Whilst we're on the subject... You'll note that as-needed overrides explicit instructions from the programmer. When you say link A to B, you aren't say link A to B unless you feel like not doing the link. Unfortunately, the ricers shoving as-needed upon everyone aren't smart enough to fix libtool, which is the real problem here, so they go for the thing they think they understand instead, without thinking the implications through -- as-needed, like fast-math, is for programs explicitly designed for it, not for universal use. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 00:47:44 +0300 Mart Raudsepp [EMAIL PROTECTED] wrote: Portage developers - is there anything we should do to get --as-needed to make.conf.example and other places, beyond fixing the known bugs on the appropriate bug tracker? make.conf.example is no big deal, that's just documentation, though personally I'd prefer to remove the toolchain (CHOST, *FLAGS) stuff from there so we don't have to maintain all the arch-specific diffs. If you want to really enable it by default you'll have to persuade the profile maintainers to add it into the appropriate make.defaults. Marius -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: Which is where the design flaw is -- as-needed incorrectly assumes that the only type of dependency between shared objects is a name dependency. This isn't true with C++ static initialisers. I don't see why should be different than abusing .init in any other language that let you do (ok, C, C++, asm mostly). Unfortunately, the ricers shoving as-needed upon everyone aren't smart Asking people to not do stuff that is unportable (Solaris and PE based systems) seems sensible and not ricing. enough to fix libtool, which is the real problem here, so they go for the thing they think they understand instead, without thinking the implications through -- as-needed, like fast-math, is for programs explicitly designed for it, not for universal use. Differently -ffast-math is setting up a slightly different behavior than the usual standard, --as-needed enforce what is the default standard in determined architectures, thus the exception and the universality are quite reverted. We already started to think how to fix libtool, or at least make it less annoying, removing .la files when they are not necessary. Similarly we started proposing upstream to use pkg-config if they aren't already. lu -- Luca Barbato Gentoo Council Member Gentoo/linux Gentoo/PPC http://dev.gentoo.org/~lu_zero -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 03:03:42 +0200 Luca Barbato [EMAIL PROTECTED] wrote: Ciaran McCreesh wrote: Which is where the design flaw is -- as-needed incorrectly assumes that the only type of dependency between shared objects is a name dependency. This isn't true with C++ static initialisers. I don't see why should be different than abusing .init in any other language that let you do (ok, C, C++, asm mostly). In C++ it's not abuse. It's using the language as specified and designed. Unfortunately, the ricers shoving as-needed upon everyone aren't smart Asking people to not do stuff that is unportable (Solaris and PE based systems) seems sensible and not ricing. Not where unportable means doesn't work on systems that fail to correctly implement widely used international standards it doesn't. You might as well say you shouldn't use lchown() because BSD 2 doesn't support it. enough to fix libtool, which is the real problem here, so they go for the thing they think they understand instead, without thinking the implications through -- as-needed, like fast-math, is for programs explicitly designed for it, not for universal use. Differently -ffast-math is setting up a slightly different behavior than the usual standard, --as-needed enforce what is the default standard in determined architectures, thus the exception and the universality are quite reverted. Both are standard-violating options that are useful for applications designed to work with them explicitly. We already started to think how to fix libtool, or at least make it less annoying, removing .la files when they are not necessary. Again, that's silly ricing. Saving a few kBytes is irrelevant. Instead, you should be focusing your efforts upon something that will really make a difference, like getting something based upon this into upstream: http://patches.ubuntu.com/by-release/extracted/debian/libt/libtool/1.9+20051221-1/link_all_deplibs.dpatch -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: On Fri, 30 May 2008 15:07:43 -0700 Donnie Berkholz [EMAIL PROTECTED] wrote: I see that a number of packages in the tree explicitly filter -ffast-math. That's mostly from the bad old days when users were encouraged to use silly CFLAGS... 1. _When_ was this? 2. _Who_ was encouraging this? . . . because it sure as hell hasn't ever been in the official documentation. Last year I wrote the optimization guide[1] in part to stem the flood of bad advice on the unofficial gentoo-wiki, and by uninformed users on the forums. There hasn't been any official documentation telling users to do foolish things with their CFLAGS or LDFLAGS. [1] http://www.gentoo.org/doc/en/gcc-optimization.xml signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
While we can continually loop around w/ the --as-needed is evil since c++ does this one odd thing occasionally argument, why not hear from the folks using it, specifically finding out what breaks in their usage? Ciaran: yes, just because the tree works now w/ --as-needed doesn't mean that future pkg versions will work. Dumb argument however (has shades of 'the sky is falling') since *every* new version is untested and has the potential to break against our accepted build environments (or to break pre-existing pkgs). That's a known issue, and dealt with (30 days stablization among other things). So... folks have pointed out a benefit to using --as-needed. The benefit itself doesn't seem particularly in dispute, analyze the fallout from it- if the best that is offered is the spec says otherwise, screw the spec frankly- a .01% breakage w/ 99.99% pkgs getting a positive gain is a strong argument for doing exemptions where needed. Basically, pull out the stats of the breakage. There is *always* risk in changes (new gcc, new bash breaking paludis/portage, etc), someone kindly come back w/ stats backing their specific viewpoint. Arguing over the spec at this point isn't going anywhere, so just drop it. ~harring pgpxIxoDRqEjB.pgp Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Fri, 30 May 2008 18:43:56 -0700 Brian Harring [EMAIL PROTECTED] wrote: So... folks have pointed out a benefit to using --as-needed. But they haven't. They've pointed out a flaw in libtool that is sort of worked around sometimes at the expense of breaking things by using as-needed. The correct solution is to fix libtool, but that's evidently beyond the abilities of people who're only interested in increasing their epenis size by throwing more silly options in config files. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 02:50:20AM +0100, Ciaran McCreesh wrote: On Fri, 30 May 2008 18:43:56 -0700 Brian Harring [EMAIL PROTECTED] wrote: So... folks have pointed out a benefit to using --as-needed. But they haven't. They've pointed out a flaw in libtool that is sort of worked around sometimes at the expense of breaking things by using as-needed. The correct solution is to fix libtool., but that's evidently beyond the abilities of people who're only interested in increasing their epenis size by throwing more silly options in config files. Then go do it. You don't like the solution folks favor because you view another as more correct and proper, either put up, or shut up. Meanwhile, obviously w/ the exemption of you and your epenis insults, most other folk don't seem to mind this approach as at least an interim solution- so again I ask, where are the stats stating the sky shall fall? ~harring pgpp8XFN6IweK.pgp Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 7:20 AM, Ciaran McCreesh [EMAIL PROTECTED] wrote: On Fri, 30 May 2008 18:43:56 -0700 Brian Harring [EMAIL PROTECTED] wrote: So... folks have pointed out a benefit to using --as-needed. But they haven't. They've pointed out a flaw in libtool that is sort of worked around sometimes at the expense of breaking things by using as-needed. The correct solution is to fix libtool, but that's evidently beyond the abilities of people who're only interested in increasing their epenis size by throwing more silly options in config files. This is incredible. I have never seen a more logic-lacking and flamebait reply to a post full of reason and logic. 1) You say the benefits haven't been pointed out, while several posts have already done so. You seem to be the only one pretending to be unaware of them. 2) The expense of breaking things is completely unqualified in your post. Here's some context: expense is minimal since the problem is easily fixable, and breaking things is the list of bugs on the tracker bug -- 19 with most of them already having patches that just need to be committed 3) You say fixing libtool is the correct solution but you don't say why or explain how. You don't give any information at all, and due to the non-existant evidence, I am going to take the statement with a fist of salt. 4) epenis size? Really. You grabbed one line in his entire post and used it to divert the conversation's direction from constructive to time-wasting-argument. Personally, I agree wholeheartedly with what Brian has said. There are advantages (they've have already been stated earlier), and they far outweigh the disadvantages (breakages are easily fixable afaict). ~Nirbheek Chauhan who awaits the reply by ciaranm quoting one sentence from his post and flaming/trolling him -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Fri, 30 May 2008 19:01:24 -0700 Brian Harring [EMAIL PROTECTED] wrote: The correct solution is to fix libtool., but that's evidently beyond the abilities of people who're only interested in increasing their epenis size by throwing more silly options in config files. Then go do it. You don't like the solution folks favor because you view another as more correct and proper, either put up, or shut up. Ah, brilliant. The old yes, we know we're wrong but we're going to do it anyway so there! approach. Nice design principle, that... -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 07:38:12 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: 1) You say the benefits haven't been pointed out, while several posts have already done so. You seem to be the only one pretending to be unaware of them. No no no. The benefits described would be obtained by fixing libtool. What you get from as-needed is a half-arsed sometimes-working subset of those benefits. as-needed is not the fix for the libtool problems. 2) The expense of breaking things is completely unqualified in your post. Here's some context: expense is minimal since the problem is easily fixable, and breaking things is the list of bugs on the tracker bug -- 19 with most of them already having patches that just need to be committed And all of which are utterly pointless. 3) You say fixing libtool is the correct solution but you don't say why or explain how. You don't give any information at all, and due to the non-existant evidence, I am going to take the statement with a fist of salt. I'm assuming everyone contributing to this thread knows exactly what the libtool problems are... But from the looks of things, plenty of people are quite happy to jump in and yell when they don't have the slightest clue what the root problem is, what as-needed changes, what as-needed breaks or how as-needed is unrelated to the problem. And unfortunately, it looks like those people are the ones that're going to be making the decisions. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 7:44 AM, Ciaran McCreesh [EMAIL PROTECTED] wrote: On Sat, 31 May 2008 07:38:12 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: 1) You say the benefits haven't been pointed out, while several posts have already done so. You seem to be the only one pretending to be unaware of them. No no no. The benefits described would be obtained by fixing libtool. What you get from as-needed is a half-arsed sometimes-working subset of those benefits. as-needed is not the fix for the libtool problems. Once again, you do not support your argument with anything but your own word. Don't make me choke on the salt please :) 2) The expense of breaking things is completely unqualified in your post. Here's some context: expense is minimal since the problem is easily fixable, and breaking things is the list of bugs on the tracker bug -- 19 with most of them already having patches that just need to be committed And all of which are utterly pointless. Ah, that's assuming your arguments are right, and your arguments aren't supported, so I'll take some more salt with this one. 3) You say fixing libtool is the correct solution but you don't say why or explain how. You don't give any information at all, and due to the non-existant evidence, I am going to take the statement with a fist of salt. I'm assuming everyone contributing to this thread knows exactly what the libtool problems are... But from the looks of things, plenty of people are quite happy to jump in and yell when they don't have the slightest clue what the root problem is, what as-needed changes, what as-needed breaks or how as-needed is unrelated to the problem. Once again, rhetoric and insults without logic or reason. We all know you know that you need facts to convince people, but you're not providing any facts. One can only conclude that your purpose is not to convince. I honestly am baffled what purpose you have in mind. And unfortunately, it looks like those people are the ones that're going to be making the decisions. Excellent, then you are free to point and laugh when we trip and fall. In the meantime, if you truly think everyone is making the wrong decision, talk with some facts and/or statistics. -- ~Nirbheek Chauhan -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 07:53:05 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: No no no. The benefits described would be obtained by fixing libtool. What you get from as-needed is a half-arsed sometimes-working subset of those benefits. as-needed is not the fix for the libtool problems. Once again, you do not support your argument with anything but your own word. Don't make me choke on the salt please :) Uhm. You're suggesting that the underlying issue is not a libtool problem? Or you're suggesting that as-needed fixes the libtool bug? Which basic fact that everyone discussing this should already know are you disputing? Once again, rhetoric and insults without logic or reason. We all know you know that you need facts to convince people, but you're not providing any facts. One can only conclude that your purpose is not to convince. I honestly am baffled what purpose you have in mind. I expect people to do their homework and understand what we're discussing. Do you expect me to start every post by explain what a linker is? And unfortunately, it looks like those people are the ones that're going to be making the decisions. Excellent, then you are free to point and laugh when we trip and fall. In the meantime, if you truly think everyone is making the wrong decision, talk with some facts and/or statistics. Fact: the underlying issue is a libtool bug. Fact: as-needed does not fix this bug. It attempts to work around it. Fact: as-needed breaks standard-compliant code. Fact: fixing the libtool bug would give all the benefits purportedly given by using as-needed, without the drawbacks. It's quite simple, and if there're any of the above that you didn't already know then why are you wasting everyone else's time discussing things in this thread without doing some basic research first? -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
Ciaran McCreesh wrote: On Sat, 31 May 2008 07:38:12 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: 1) You say the benefits haven't been pointed out, while several posts have already done so. You seem to be the only one pretending to be unaware of them. No no no. The benefits described would be obtained by fixing libtool. What you get from as-needed is a half-arsed sometimes-working subset of those benefits. as-needed is not the fix for the libtool problems. 2) The expense of breaking things is completely unqualified in your post. Here's some context: expense is minimal since the problem is easily fixable, and breaking things is the list of bugs on the tracker bug -- 19 with most of them already having patches that just need to be committed And all of which are utterly pointless. 3) You say fixing libtool is the correct solution but you don't say why or explain how. You don't give any information at all, and due to the non-existant evidence, I am going to take the statement with a fist of salt. I'm assuming everyone contributing to this thread knows exactly what the libtool problems are... But from the looks of things, plenty of people are quite happy to jump in and yell when they don't have the slightest clue what the root problem is, what as-needed changes, what as-needed breaks or how as-needed is unrelated to the problem. And unfortunately, it looks like those people are the ones that're going to be making the decisions. Could you explain, for the benefit of us spectators, what these libtool problems are, and what cleaner solution you have in mind? It'd make this whole discussion a lot more comprehensible. --Ravi -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 8:03 AM, Ciaran McCreesh [EMAIL PROTECTED] wrote: Once again, you do not support your argument with anything but your own word. Don't make me choke on the salt please :) Uhm. You're suggesting that the underlying issue is not a libtool problem? Or you're suggesting that as-needed fixes the libtool bug? Which basic fact that everyone discussing this should already know are you disputing? I'm disputing your claim that fixing libtool is the correct solution *right now*, and that it's sanely doable in a reasonable time-frame. The former has been questioned by pretty much everyone else in the thread, and the latter is probably false since you don't just do it yourself. Once again, rhetoric and insults without logic or reason. We all know you know that you need facts to convince people, but you're not providing any facts. One can only conclude that your purpose is not to convince. I honestly am baffled what purpose you have in mind. I expect people to do their homework and understand what we're discussing. Do you expect me to start every post by explain what a linker is? EDOESNOTMAKESENSE You said [...]plenty of people are quite happy to jump in and yell when they don't have the slightest clue what the root problem is[...] I replied saying that the paragraph was full of rhetoric and insults without logic or reason. The latter part of the post is purely about how you're doing the same even where you should be talking with facts. Your reply seriously does not make sense to me. And unfortunately, it looks like those people are the ones that're going to be making the decisions. Excellent, then you are free to point and laugh when we trip and fall. In the meantime, if you truly think everyone is making the wrong decision, talk with some facts and/or statistics. Fact: the underlying issue is a libtool bug. Fact: It can't be fixed easily and/or in a reasonable time-frame. Else someone would've done it -- heck you could've fixed it. Fact: as-needed does not fix this bug. It attempts to work around it. Fact: It works. Unlike your vapour-proposal to fix libtool. Fact: as-needed breaks standard-compliant code. Fact: Breakages are rare, code which causes it is discouraged anyway, and is fixable in any case. We're not a standards organisation. Fact: fixing the libtool bug would give all the benefits purportedly given by using as-needed, without the drawbacks. Fact: It hasn't been done forever, and won't be done anytime soon. It's quite simple, and if there're any of the above that you didn't already know then why are you wasting everyone else's time discussing things in this thread without doing some basic research first? It's quite simple, and you already knew all of the above, so why are you wasting everyone's time and energy discussing these things in this thread? Quite refreshing, seeing you type out your points in a clear manner for clearer rebuttal. I am going to assume that the matter is settled now. -- ~Nirbheek Chauhan -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, 31 May 2008 08:28:27 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: Fact: the underlying issue is a libtool bug. Fact: It can't be fixed easily and/or in a reasonable time-frame. Else someone would've done it -- heck you could've fixed it. Untrue. The amount of effort that's been wasted messing around with as-needed could easily have been directed to fixing the root cause instead. Debian have already done most of the work. Fact: as-needed does not fix this bug. It attempts to work around it. Fact: It works. Unlike your vapour-proposal to fix libtool. But it doesn't work. And fixing libtool isn't vapour. Read the Debian patch. Fact: as-needed breaks standard-compliant code. Fact: Breakages are rare, code which causes it is discouraged anyway, and is fixable in any case. We're not a standards organisation. You seriously think Gentoo has the manpower to go around making unnecessary changes to upstream code? And there's nothing in the C++ standard discouraging static initialisation. Fact: fixing the libtool bug would give all the benefits purportedly given by using as-needed, without the drawbacks. Fact: It hasn't been done forever, and won't be done anytime soon. And the Debian patch is...? -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Fri, 30 May 2008 21:50:49 -0500 Ravi Pinjala [EMAIL PROTECTED] wrote: Could you explain, for the benefit of us spectators, what these libtool problems are, and what cleaner solution you have in mind? It'd make this whole discussion a lot more comprehensible. libtool links against dependencies-of-dependencies, rather than just direct dependencies. This is correct behaviour on some platforms under some situations (one example is static linking). But when linking shared objects on modern Unixy platforms it's a pain in the ass since you end up with a load of bogus shared object dependencies that break things unnecessarily upon upgrades. as-needed works around this by making the linker only link things from the command line that resolve a name dependency (but name dependencies aren't the only dependency type). This means that most of the extras libtool adds in end up getting ignored, but it also means that things the programmer has explicitly said to link in get ignored too. The correct fix is to make libtool only link to dependencies of dependencies when doing, for example, static linking. Debian has a half-working patch for this that I posted earlier in the thread. -- Ciaran McCreesh signature.asc Description: PGP signature
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 8:33 AM, Ciaran McCreesh [EMAIL PROTECTED] wrote: On Sat, 31 May 2008 08:28:27 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: Fact: It can't be fixed easily and/or in a reasonable time-frame. Else someone would've done it -- heck you could've fixed it. Untrue. The amount of effort that's been wasted messing around with as-needed could easily have been directed to fixing the root cause instead. Debian have already done most of the work. And the time you just wasted spewing rhetoric on this thread? Since you have such a deep understanding of everything, couldn't you have done the rest of the work, posted it here and instantly convinced everyone? Fact: It works. Unlike your vapour-proposal to fix libtool. But it doesn't work. And fixing libtool isn't vapour. Read the Debian patch. Fixing libtool isn't vapour, neither is the debian patch, but your plan/proposal to do is non-existant. You're just saying Do this because I say you should, I don't know how, but you should. Oh, and if you don't you're all idiots. Fact: Breakages are rare, code which causes it is discouraged anyway, and is fixable in any case. We're not a standards organisation. You seriously think Gentoo has the manpower to go around making unnecessary changes to upstream code? And there's nothing in the C++ standard discouraging static initialisation. The tracker bug (bug 129413) seems to say otherwise. Fact: It hasn't been done forever, and won't be done anytime soon. And the Debian patch is...? Useless unless it's complete. As I said above, fix it and convince us. Show us how wrong we are. We'll be glad and grateful. Don't whine about it and waste everyone's time and energy. -- ~Nirbheek Chauhan -- gentoo-dev@lists.gentoo.org mailing list
Re: [gentoo-dev] RFC: --as-needed to default LDFLAGS (Was: RFC: Should preserve-libs be enabled by default?)
On Sat, May 31, 2008 at 08:45:09AM +0530, Nirbheek Chauhan wrote: On Sat, May 31, 2008 at 8:33 AM, Ciaran McCreesh [EMAIL PROTECTED] wrote: On Sat, 31 May 2008 08:28:27 +0530 Nirbheek Chauhan [EMAIL PROTECTED] wrote: Fact: It works. Unlike your vapour-proposal to fix libtool. But it doesn't work. And fixing libtool isn't vapour. Read the Debian patch. Fixing libtool isn't vapour, neither is the debian patch, but your plan/proposal to do is non-existant. You're just saying Do this because I say you should, I don't know how, but you should. Oh, and if you don't you're all idiots. It's worth noting the debian patch was also rejected by upstream- http://lists.gnu.org/archive/html/libtool/2004-05/msg00118.html Full thread in question- http://lists.gnu.org/archive/html/libtool/2004-05/msg00097.html Basically, libtool upstream points at several rather hard issues to fixing it fully. Worth noting that was also in '04- 4 years later (with said debian patch in use), issue still is unfixed upstream. Fact: Breakages are rare, code which causes it is discouraged anyway, and is fixable in any case. We're not a standards organisation. You seriously think Gentoo has the manpower to go around making unnecessary changes to upstream code? And there's nothing in the C++ standard discouraging static initialisation. Considering static initialization doesn't always play nice on other platforms (porting rekall 2.2 on osx comes to mind), I'd expect the sources in question to be addressing the issue themselves frankly (which is what occured with rekall). Either way, basically it's coming down to if gentoo wants to follow the definition of 'academic' right, or 'pragmatic' right. Exempting ciaran, vote seems to be pragmatic. Cc'ing council, would like them to discuss this for upcoming meeting. ~harring pgpAvegxALtXm.pgp Description: PGP signature