First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 59506
Alias:
Product:
Component:
Status: REOPENED
Resolution:
Assigned To: Gentoo Quality Assistance Team <qa@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Ciaran McCreesh <ciaran.mccreesh@googlemail.com>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 59506 depends on: 51593 58956 59280 59507 59508 59509 59510 59511 59513 59514 59537 59709 67070 69678 86874 112432 143661 176240 190534 220739 238106 Show dependency tree
Bug 59506 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.








View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2004-08-05 04:56 0000
Metabug for ebuilds which kill user-supplied CFLAGS. This is a Very Bad Thing
(TM):

* Killing -march/-mcpu will force kernel emulation for certain opcodes
(especially for floating point) on certain processors. This is *really* slow.

* Stripping certain ABI flags will kill linkage. This will lead to either
crashes or horrid explosive failure on non-static binaries.

* Stripping certain ABI flags will produce invalid code for certain CPUs. For
example, we might end up producing big endian code for little endian CPUs, or
code which assumes that the %g0 register is always zero when it isn't.

gentoo-dev post:
http://marc.theaimsgroup.com/?l=gentoo-dev&m=109131955117290&w=2

Correct behaviour is to use flag-o-matic's strip-flags. This isn't perfect, but
it means that when we have to add in new allowed flags, we only have to do it
in one place rather than in several hundred ebuilds.

------- Comment #1 From Ciaran McCreesh 2004-08-05 09:37:58 0000 -------
Additional reason:

* When killing a user's march/mcpu/mtune and replacing it with a vendor-supplied auto-detected CPU setting, this breaks binaries (GRP and crossbuilding). For example, I might be building generic i686 stages on my athlon-xp.

------- Comment #2 From Matthew Kennedy (RETIRED) 2004-08-05 21:57:24 0000 -------
Someone feels dev-lisp/clisp and dev-lisp/mzscheme are problems
because of this.  Quite frankly I dont have the time to determine what
flags and combinations thereof cause build or runtime failures.

You can take a look at dev-lisp/clisp and get an idea of the time
consuming and complicated flag-o-matic logic required to get CLISP
built.  It is a maintenance nightmare.  Even with that logic, I know
people are still encountering problems on architectures I can't test
myself.  

I understand all your reasons.  They look like good ones to me.  I'm
open to suggestions, however if you insist on filtering CFLAGS, then
feel free to do all the work.

------- Comment #3 From Ciaran McCreesh 2004-08-06 05:15:09 0000 -------
Mike -- how about adding in a strip-optimisation-flags or somesuch to
flag-o-matic? It'd have the same kind of behaviour as strip-flags but would
also remove optimisations.

------- Comment #4 From Matthieu Sozeau (RETIRED) 2004-08-18 10:00:17 0000 -------
The ocaml compiler intentionaly ignores user's CFLAGS !

------- Comment #5 From Ciaran McCreesh 2004-08-18 10:06:50 0000 -------
Intentionally ignoring CFLAGS is no good. It breaks things.

------- Comment #6 From Martin Holzer (RETIRED) 2004-08-19 05:31:18 0000 -------
this is really a great problem
see the hundreds of thousand bugs about wrong mplayer flags.
any good idea how to solve this ?

------- Comment #7 From Daniel Black 2004-08-19 07:36:14 0000 -------
Create some tool that performs QA when ebuilding the product.

There is also scope for other checks such as:
- verify dependancies based on files accessed
- doing a rough check on FHS compliance
- determining files its about to cobber and the packages that provide that
- checking runtime dependancies based on script languages, dynamic libraries etc.

Or if its mainly mplayer - infiltrate the mplayer dev team and commit out all CFLAGS :-)

------- Comment #8 From Ciaran McCreesh 2004-08-19 07:46:23 0000 -------
I've modified flag-o-matic locally to allow -D__CIARANM_WAS_HERE__ through. I'm
now building lots and lots of apps whilst logging the compiles, and later on
I'll grep through for possible matches.

I still like the "get required flags" idea.

------- Comment #9 From Ferris McCormick 2004-09-24 05:39:57 0000 -------
Add myself to CC list.

------- Comment #10 From Ferris McCormick 2005-03-27 09:08:15 0000 -------
x11-libx/fox=1.3.6-r2 also ignores CXXFLAGS, substituting 'no-optimization,
no-architecture-consideration.'

------- Comment #11 From Ernst Bachmann 2005-07-22 04:54:57 0000 -------
Just posted a fresh bug #99896, but after finding this report, I'd thought I'd 
add the info here as well. 
 
glibc ebuild filters the "-mno-tls-direct-seg-refs" gcc-3.4.4+ option, which 
makes it impossible to build a NPTL glibc which would run nicely under Xen. 
 
The culprit is the "strip-flags" function in flag-o-matic.eclass, adding 
-mno-tls-direct-seg-refs as known-good flag there locally solves the problem 
for me. 

------- Comment #12 From Ferris McCormick 2005-11-13 06:54:53 0000 -------
It seems that sci-libs/lapack-atlas just went stable on sparc, and I notice
that
the build completely ignores my CFLAGS='-O2 -mcpu=ultrasparc -pipe' and
substitutes:
-fomit-frame-pointer -O3 -funroll-all-loops
This is a horrible choice for sparc: omit-frame-pointer is unneeded and the
others are probably lost in the fact that this defaults to -mv7 architecture,
guaranteeing the slowest possible execution times.  (The g77 flags are (flag
is)
just -O, so the fortran portion is probably a little worse code that the c
portion.)
I thought this was taken care of, but maybe only for blas-atlas.

------- Comment #13 From Jakub Moc (RETIRED) 2007-06-30 21:54:15 0000 -------
Nothing left here.

------- Comment #14 From Ferris McCormick 2007-08-28 14:29:31 0000 -------
This is a useful tracker, and for sparc at least it is an ongoing problem.  We
add to this bug as the need arises.

First Last Prev Next    No search results available      Search page      Enter new bug