Bug 172389

Summary: 'make check' fails on PPC build machine
Product: [Fedora] Fedora Reporter: Enrico Scholz <rh-bugzilla>
Component: util-vserverAssignee: Enrico Scholz <rh-bugzilla>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: byte, extras-qa, kevin
Target Milestone: ---   
Target Release: ---   
Hardware: powerpc   
OS: Linux   
URL: http://buildsys.fedoraproject.org/logs/fedora-development-extras/415-util-vserver-0.30.209-3.fc5/ppc/build.log
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-04-30 12:11:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 176788    
Bug Blocks: 179260    
Attachments:
Description Flags
Working ('good') program (from the Mandriva toolchain)
none
Broken ('bad') test program none

Description Enrico Scholz 2005-11-03 17:40:45 UTC
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 17:40:45 UTC
Created attachment 120693 [details]
Working ('good') program (from the Mandriva toolchain)

Comment 2 Enrico Scholz 2005-11-03 17:44:21 UTC
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 23:54:33 UTC
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 23:31:30 UTC
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 15:09:09 UTC
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 14:29:35 UTC
Your 'cflags-bad' test program seems to work fine on current kernels. Please retest.

Comment 7 David Woodhouse 2006-12-28 14:30:24 UTC
(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-11 01:15:05 UTC
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?