Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

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?