Bug 172389 - 'make check' fails on PPC build machine
'make check' fails on PPC build machine
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: util-vserver (Show other bugs)
rawhide
powerpc Linux
medium Severity medium
: ---
: ---
Assigned To: Enrico Scholz
Fedora Extras Quality Assurance
http://buildsys.fedoraproject.org/log...
:
Depends On: 176788
Blocks: F-ExcludeArch-ppc
  Show dependency treegraph
 
Reported: 2005-11-03 12:40 EST by Enrico Scholz
Modified: 2007-11-30 17:11 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-04-30 08:11:35 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
Working ('good') program (from the Mandriva toolchain) (80.78 KB, application/octet-stream)
2005-11-03 12:40 EST, Enrico Scholz
no flags Details
Broken ('bad') test program (66.92 KB, application/octet-stream)
2005-11-03 12:44 EST, Enrico Scholz
no flags Details

  None (edit)
Description Enrico Scholz 2005-11-03 12:40:45 EST
Description of problem:

The 'cflags' and 'personality' checks are failing on the PPC build machine. I have only limited ways to debug this issue but it seems, that:

* the error happens, before main() will be reached; because the checks are 
  linked statically, bugs in external libraries can be excluded

* the bug happens on some machines only; I know, that it fails on the PPC 
  build machine and on a laptop. But the programs are runnign fine in 'qemu'
  and on pjone's machine


Some observations:

* the programs are getting a SIGKILL signal without any kernel message

* the same programs, compiled with another toolchain (afaik, a Mandriva one)
  are working fine on the laptop mentioned above

* the checks are running fine on i386 and x86_64

* afair, the same problem happened for util-vserver 0.30.208 but after 
  submitting it again, it was built. This does not seem to apply to 
  0.30.209 which was submitted 5-6 times already.

* 'gdb' does not help ('b main; run' gets a SIGKILL before the breakpoint is
  reached), 'strace' will not help because exactly 2 syscalls will be called 
  (execv + exit)

* 'eu-elflint' does not report any errors

* the '_start' function of the working 'cflags' and the broken 'cflags' 
  programs are nearly identical. Only difference is

  | 100000b8:       3d c0 10 01     lis     r14,4097
  | 100000bc:       91 2e 70 00     stw     r9,28672(r14)
  | ...
  | 100000d8:       3d c0 10 01     lis     r14,4097
  | 100000dc:       90 ae 71 00     stw     r5,28928(r14)

  | 10017000 V __libc_stack_end

  in the bad one a

  | 100000ac:       3d c0 10 02     lis     r14,4098
  | 100000b0:       91 2e ac 00     stw     r9,-21504(r14)
  | ...
  | 100000cc:       3d c0 10 02     lis     r14,4098
  | 100000d0:       90 ae ad 00     stw     r5,-21248(r14)
  
  | 1001ac00 V __libc_stack_end


  in the good one which were both created by

  |      lis     14,__libc_stack_end@ha
  |      stw     9,__libc_stack_end@l(14)
  |      ...
  |      lis     14,environ@ha
  |      stw     5,environ@l(14)


  The bad file looks ok, but I can not explain the good one. There,
  the __libc_stack_end@ha should be 0x1001 as in the bad one also, but
  it is 0x1002. But I am not very familar with PPC assembler...


Because I do not have a machine were I can debug this, I will add an 'ExcludeArch: ppc'.



Version-Release number of selected component (if applicable):

0.30.208 + 0.30.209


How reproducible:

100% (???)
Comment 1 Enrico Scholz 2005-11-03 12:40:45 EST
Created attachment 120693 [details]
Working ('good') program (from the Mandriva toolchain)
Comment 2 Enrico Scholz 2005-11-03 12:44:21 EST
Created attachment 120696 [details]
Broken ('bad') test program

... forget the comment about the 'lis' + 'stw' commands; I looked into the
wrong binary ('personality')...
Comment 3 Enrico Scholz 2005-11-03 18:54:33 EST
For completeness (I do not know, how long the buildlogs are kept) the
visible problem:

| + gdb --batch --command=/builddir/build/SOURCES/personality.gdb ./lib/testsuite/cflags
| Using host libthread_db library "/lib/libthread_db.so.1".
| ['start' resp. 'b main']
| Breakpoint 1 at 0x10000124: file lib/testsuite/cflags.c, line 75.
| 
| ['start' resp. 'run']
| Program terminated with signal SIGKILL, Killed.
| The program no longer exists.
| /builddir/build/SOURCES/personality.gdb:1: Error in sourced command file:
| You can't do that without a process to debug.

| + /usr/bin/make check
| ...
| /usr/bin/make  check-TESTS
| make[3]: Entering directory `/builddir/build/BUILD/util-vserver-0.30.209'
| /bin/sh: line 1: 13088 Killed                  ensc_use_expensive_tests="no" ensc_test_debug="no" srctestsuitedir=./src/testsuite libinternaltestsuitedir=./lib_internal/testsuite ${dir}$tst
| FAIL: lib/testsuite/cflags
| /bin/sh: line 1: 13093 Killed                  ensc_use_expensive_tests="no" ensc_test_debug="no" srctestsuitedir=./src/testsuite libinternaltestsuitedir=./lib_internal/testsuite ${dir}$tst
| FAIL: lib/testsuite/personality
| PASS: lib/testsuite/fmt
| PASS: lib/testsuite/parselimit
Comment 4 Colin Charles 2005-11-06 18:31:30 EST
FC-4 build machine (peach), reports:

net.lo -MD -MP -MF lib/.deps/lib_libvserver_la-ncaps_list-net.Tpo -c lib/ncaps_list-net.c  -fPIC -DPIC 
-o lib/.libs/lib_libvserver_la-ncaps_list-net.o
lib/ncaps-net.c:33:2: warning: #warning is a GCC extension
lib/ncaps-net.c:33:2: warning: #warning Add the 'ncap' values here
lib/ncaps-net.c:34: warning: ISO C forbids empty initializer braces
lib/ncaps-net.c:32: error: zero or negative size array 'VALUES'
make[3]: *** [lib/lib_libvserver_la-ncaps-net.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
 gcc -DHAVE_CONFIG_H -I. -I. -I. -I ./lib -I ./ensc_wrappers -D_GNU_SOURCE -D_REENTRANT -
DNDEBUG -DNDEBUG -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m32 -fsigned-char -
std=c99 -Wall -pedantic -W -MT lib/lib_libvserver_la-nflags-net.lo -MD -MP -MF lib/.deps/
lib_libvserver_la-nflags-net.Tpo -c lib/nflags-net.c  -fPIC -DPIC -o lib/.libs/lib_libvserver_la-nflags-
net.o
lib/nflags-net.c:33:2: warning: #warning is a GCC extension
lib/nflags-net.c:33:2: warning: #warning Add the 'nflags' values here
lib/nflags-net.c:34: warning: ISO C forbids empty initializer braces
lib/nflags-net.c:32: error: zero or negative size array 'VALUES'
make[3]: *** [lib/lib_libvserver_la-nflags-net.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/byte/util-vserver/FC-4/util-vserver-0.30.206'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/byte/util-vserver/FC-4/util-vserver-0.30.206'
error: Bad exit status from /home/byte/rpm/tmp/rpm-tmp.49720 (%build)


RPM build errors:
    Bad exit status from /home/byte/rpm/tmp/rpm-tmp.49720 (%build)
make: *** [ppc] Error 1

Is this another error? 

If I run a make check on the package contents in FC-4, it exits w/o error.
Comment 5 Enrico Scholz 2006-01-29 10:09:09 EST
comment #4 is due to another error (dunno, why it happens with the ppc compiler
only but not with the i386 one).

The 'make check' errors are caused by a kernel bug in the ELF loader.
Comment 6 David Woodhouse 2006-12-28 09:29:35 EST
Your 'cflags-bad' test program seems to work fine on current kernels. Please retest.
Comment 7 David Woodhouse 2006-12-28 09:30:24 EST
(In reply to comment #0)
> Because I do not have a machine were I can debug this, I will add an
'ExcludeArch: ppc'.

Just mail me a SSH public key.
Comment 8 Kevin Fenzi 2007-04-10 21:15:05 EDT
Is this what is blocking a build of this package in devel to fix the broken
upgrade path? 

    util-vserver
      FE5 > FE7 (0:0.30.212-1.fc5 > 0:0.30.211-1.fc6)
      FE6 > FE7 (0:0.30.212-3.fc6 > 0:0.30.211-1.fc6)

I just did a mock build here on my ppc test box and it worked fine. 
Could you try pushing another build out to fix the E-V-R issue? 

Note You need to log in before you can comment on or make changes to this bug.