[gentoo-amd64] Re: kdelibs-3.5.10-r6 failed

2009-06-14 Thread Duncan
John P. Burkett burk...@uri.edu posted 4a345d3b.9030...@uri.edu,
excerpted below, on  Sat, 13 Jun 2009 22:15:23 -0400:

 Doing emerge -NauvD world on an amd64 machine today produced an error
 message including the following lines:

 /usr/qt/3/include/qimage.h:61: warning: suggest parentheses around 
 within ||
 /bin/sh: line 3:  4627 Segmentation fault  /usr/qt/3/bin/uic
 -nounload -tr tr2i18n -i kshortcutdialog_advanced.h
 ./kshortcutdialog_advanced.ui  kshortcutdialog_advanced.cpp.temp
 make[3]: *** [kshortcutdialog_advanced.cpp] Error 139
 make[3]: *** Waiting for unfinished jobs

That wasn't the first error, but the first one wasn't too far above that
and was also a segfault.  FWIW, searching the log for either err (case
insensitive, this one will produce a lot of false positives, hitting on
error functions in what what's being compiled, etc, but it's usually
quite easy to tell the false positives from the error) or Waiting for
unfinished jobs often makes finding the first error easier.

Here it is, from your attached changelog (thanks):
/usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp ;
 ret=$?;
[snip]

/bin/sh: line 3:  4547 Segmentation fault  /usr/qt/3/bin/uic
-nounload -tr tr2i18n -i kshortcutdialog_simple.h
./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp
echo '#include klocale.h'  kshortcutdialog_advanced.cpp
make[3]: *** [kshortcutdialog_simple.cpp] Error 139
make[3]: *** Waiting for unfinished jobs

Here's the directory it was working in (for both errors).  That tends
to help put the error(s) in context:

 make[3]: Leaving directory
 `/var/tmp/portage/kde-base/kdelibs-3.5.10-r6/work/kdelibs-3.5.10/kdeui'

 I have tried re-emerging qt and inserting kde-base/kdelibs utempter in
 the /etc/portage/package.use file.
 Neither of those steps resolved the problem.

Segfaults aren't supposed to happen during a build.  When they do
happen, it often indicates hardware issues, especially when it's
gcc or the like segfaulting.  However, here, it wasn't gcc, but
uic, and I don't know if it's generally as resistant to segfaulting.

One often useful way to help figure out whether it's hardware or
software is to run the compile again, and see if the error happens
in the same or a different place.  Setting MAKEOPTS=-j1 also
helps with the ordering, so you're likely to get the same error
at the same spot as a different -j1 run (tho generally not the same
as when running multiple jobs, as you were here).  That also forces
everything to serialize, thus often making the error and reason for
it clear.

If with multiple -j1 runs it always segfaults in the same place,
it's probably software.  If it's segfaulting or otherwise erroring
in different places each time, it's very likely hardware related.
If it's hardware, you can often make it more reliable by
underclocking memory and/or the CPU, if your BIOS allows that.
(FWIW, I had some bad memory at one point.  It would pass memtest,
but in normal use it wasn't entirely reliable.  Turns out it
simply wasn't stable at the clock rate it was certified and the
internal settings were set for.  Reducing the clock rate one notch
made it stable as a rock, even when I clawed back a bit of the lost
performance with manual wait-state tuning.  So I know what that's
like, for sure!  At other times I've had CPU issues (due to
overclocking, something I've not done since I went 64-bit) and
hard drive issues.  Others have had issues due to underpowered
or faulty power-supplies or UPS units.)

Meanwhile, I don't know much about the internals of qt, but I'd guess
uic indicates UI compiler (where UI is of course user interface),
particularly since dialogs are certainly UI elements and that's
what it was working on.

Actually, running /usr/qt/3/bin/uic (path as I have the qt4
version as well, ordered first in the path) with no options,
it TELLS you what it is at the top of the help message it spits
out: Qt user interface compiler.  So I guessed correctly! =:^)

A quick equery belongs indeed says uic belongs to qt3 (with other
versions elsewhere belonging to qt4 and PyQt4), so that's confirmed.

You said you already tried remerging qt, which would have been my
initial suggestion.  Question:  Are you sure you remerged qt3,
*NOT* qt4?  That's make a difference! =:^)  Try emerge -1 qt:3
to remerge the slot 3 version, if you need to.

Beyond that, I don't know... Let me check for bugs that look
similar...  Either there are none or my bug-foo is bad today.
Thus, assuming you've double-checked that you were remerging
qt3, and assuming two -j1 runs duplicate the error at exactly
the same place, unless someone else happens to do better
than I did, I'd say it's time to post a bug and let the
Gentoo KDE/Qt devs at it.  (Some read this list and may
be able to help you here, but unless it's trivial or there's
already a bug they can point you to, they'll probably want
a bug anyway, 

Re: [gentoo-amd64] Re: kdelibs-3.5.10-r6 failed

2009-06-14 Thread Joachim

Duncan pisze:

Here it is, from your attached changelog (thanks):
/usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp ;
 ret=$?;
[snip]

/bin/sh: line 3:  4547 Segmentation fault  /usr/qt/3/bin/uic
-nounload -tr tr2i18n -i kshortcutdialog_simple.h
./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp
echo '#include klocale.h'  kshortcutdialog_advanced.cpp
make[3]: *** [kshortcutdialog_simple.cpp] Error 139
make[3]: *** Waiting for unfinished jobs

  


I had problems with uic segmentation faults because I had march=native 
in my C/CXX FLAGS. When I changed native to k8 ( as in 
http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD ).
Also I got an explanation ( 
http://forums.gentoo.org/viewtopic-p-5795915.html#5795915 ) that it's 
because qt3 is stripping flags. Some that must be compiled with the same 
flags as qt don't strip flags. So the are compiled with  different flags.




Re: [gentoo-amd64] Re: kdelibs-3.5.10-r6 failed

2009-06-14 Thread Joachim

Joachim pisze:

Duncan pisze:

Here it is, from your attached changelog (thanks):
/usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp ;
 ret=$?;
[snip]

/bin/sh: line 3:  4547 Segmentation fault  /usr/qt/3/bin/uic
-nounload -tr tr2i18n -i kshortcutdialog_simple.h
./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp
echo '#include klocale.h'  kshortcutdialog_advanced.cpp
make[3]: *** [kshortcutdialog_simple.cpp] Error 139
make[3]: *** Waiting for unfinished jobs

I sent before I finished writing. Here is what I wanted to write:

I had problems with uic segmentation faults because I had march=native 
in my C/CXX FLAGS. When I changing march=native to march=k8 ( as in 
http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD ) and reemerging qt-3 and 
kdelibs solved my problem.


Also I got an explanation ( 
http://forums.gentoo.org/viewtopic-p-5795915.html#5795915 ):
qt3 is stripping flags. Some that must be compiled with the same flags 
as qt don't strip flags. So the are compiled with  different flags. So 
they don't work properly.




Re: [gentoo-amd64] Re: kdelibs-3.5.10-r6 failed

2009-06-14 Thread John P. Burkett
Joachim wrote:
 Joachim pisze:
 Duncan pisze:
 Here it is, from your attached changelog (thanks):
 /usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
 ./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp ;
  ret=$?;
 [snip]

 /bin/sh: line 3:  4547 Segmentation fault  /usr/qt/3/bin/uic
 -nounload -tr tr2i18n -i kshortcutdialog_simple.h
 ./kshortcutdialog_simple.ui  kshortcutdialog_simple.cpp.temp
 echo '#include klocale.h'  kshortcutdialog_advanced.cpp
 make[3]: *** [kshortcutdialog_simple.cpp] Error 139
 make[3]: *** Waiting for unfinished jobs
 I sent before I finished writing. Here is what I wanted to write:
 
 I had problems with uic segmentation faults because I had march=native
 in my C/CXX FLAGS. When I changing march=native to march=k8 ( as in
 http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD ) and reemerging qt-3 and
 kdelibs solved my problem.
 
 Also I got an explanation (
 http://forums.gentoo.org/viewtopic-p-5795915.html#5795915 ):
 qt3 is stripping flags. Some that must be compiled with the same flags
 as qt don't strip flags. So the are compiled with  different flags. So
 they don't work properly.
 


Thank you, Joachim, for your insights.  Having no experience with
changing CFLAGS and CXXFLAGS, I should proceed cautiously.
Doing locate make.conf generates a long list of such files in various
directories.  Guessing that /etc/make.conf may be the pertinent one, see
that its first 6 lines read as follows:

# These settings were set by the catalyst build script that
automatically built this stage
# Please consult /etc/make.conf.example for a more detailed example
CFLAGS=-Os -march=opteron -mtune=opteron -fomit-frame-pointer -ggdb
CHOST=x86_64-pc-linux-gnu
CXXFLAGS=${CFLAGS}

The question now, I suppose, is whether -march=opteron is safe for my
cpu.  My /proc/cpuinfo file contains the following lines

vendor_id   : AuthenticAMD
cpu family  : 15
model   : 65
model name  : Dual-Core AMD Opteron(tm) Processor 2210
stepping: 2

The Safe Cflags/AMD web page you cited has a section on 22xx
Dual-Core Opteron consisting of 3 boxes.  The first box consists of the
following lines:

vendor_id : AuthenticAMD
cpu family : 15
model : 65
model name : Dual-Core AMD Opteron(tm) Processor 22xx
stepping : 2

That closely matches my cpuinfo.

The second box consists of these lines:

CHOST=x86_64-pc-linux-gnu
CFLAGS=-march=opteron -O2 -pipe
CXXFLAGS=${CFLAGS}

Thus my -march=opteron setting seems safe.  Are the discrepancies in
other parts of the CFLAGS line significant for my kdelibs problem?

Is there anything in the third box under 22xx Dual-Core Opteron that
needs attention?

-John

-- 
John P. Burkett
Department of Economics
University of Rhode Island
Kingston, RI 02881-0808
USA

phone (401) 874-9195