Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 34657 - xfree-4.3.0-r3 emerge fails on ia64
Summary: xfree-4.3.0-r3 emerge fails on ia64
Status: RESOLVED DUPLICATE of bug 33353
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: IA64 Linux
: High blocker (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-28 16:55 UTC by Derek Gaston
Modified: 2005-07-17 13:06 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Derek Gaston 2003-11-28 16:55:32 UTC
Plz forgive me - I don't have any way to copy paste the error - so I am just
typing it in from another machine.

Xfree on itanium is failing when it tries to compile:
/var/tmp/portage/xfree-4.3.0-r3/work/xc/programs/Xserver/hw/xfree86/loader/elfloader.c

Here is what I can see on my screen:
elfloader.c: In function 'Elf_RelocateEntry':
elfloader.c:2281: error: duplicate case value
elfloader.c:2269: error: previously used here
MAKE THEN EXITS OUT OF ALL THE DIRS

!!! ERROR: x11-base/xfree4.3.0-r3 failed.
!!! Function src_install, Line 600, Exitcode 2
!!! (no error message).

Ok so I went digging in the file and here's what I found.  There really is a
duplicate case value - and the body of the cases is ALMOST exactly alike except
for the last line.  It looks like it is a bad patch somewhere along the line.

Here are the two offending pieces of code:
////////
//Starting at 2269
        case R_IA64_PCREL64LSB:
            dest64=(unsigned long *)(secp+rel->r_offset);
#ifdef ELFDEBUG
            ELFDEBUG( "R_IA64_PCREL64LSB %s\t",
                      ElfGetSymbolName(elffile,ELF_R_SYM(rel->r_info)) );
            ELFDEBUG( "secp=%lx\t", secp );
            ELFDEBUG( "symval=%lx\t", symval );
            ELFDEBUG( "dest64=%lx\n", dest64 );
#endif
            *dest64 = symval + rel->r_addend - (unsigned long)dest64;
            break;
////End

////////
//Starting at 2281
        case R_IA64_PCREL64LSB:
            dest64=(unsigned long *)(secp+rel->r_offset);
#ifdef ELFDEBUG
            ELFDEBUG( "R_IA64_PCREL64LSB %s\t",
                        ElfGetSymbolName(elffile,ELF_R_SYM(rel->r_info)) );
            ELFDEBUG( "secp=%lx\t", secp );
            ELFDEBUG( "symval=%lx\t", symval );
            ELFDEBUG( "dest64=%lx\n", dest64 );
#endif
            *dest64 = symval + rel->r_addend - ((unsigned long)dest64 & -16);
            ia64_flush_cache(dest64);
            break;
/////End

Reproducible: Always
Steps to Reproduce:
"emerge xfree"

Actual Results:  
Failure to emerge xfree
Comment 1 Derek Gaston 2003-11-28 17:33:49 UTC
After looking at some of the patches that are being applied it looks like patch: 0260_ia64_4.2.99.1-gcc3.1.patch is the culprit.

I don't see how this patch EVER worked correctly.  It directly creates a duplicate case entry underneath the one that is already there for R_IA64_PCREL64LSB.

I have no idea which CASE is the right one - or why this patch is even needed but hopefully one of you guys will be able to make the right decision.

Derek
Comment 2 Donnie Berkholz (RETIRED) gentoo-dev 2003-11-28 18:09:51 UTC
There's a patch on the bug I'm marking this a duplicate of that will be in 4.3.0-r4, which will be coming out as soon as I get back to work and clear up a couple of final problems (I'm on Thanksgiving vacation right now). I'll also add the patch to 4.3.0-r3 just so you're able to get something working in the meanwhile. If you care to download that patch and add a line right above the first mention of epatch in xfree-4.3.0-r3.ebuild, that states "cp /path/to/0263_ia64* ${PATCHDIR}/", it should fix you up for now.

*** This bug has been marked as a duplicate of 33353 ***
Comment 3 Derek Gaston 2003-11-28 18:34:09 UTC
Great!  Thank you - it is compiling away now.

This might not be the right place - but I have one more question.  Why doesn't "emerge xfree" use multiple makes?  It only runs one - and only uses one of my processors.  Makes the whole thing take a lot longer than it should.  Any quick reasoning or should I open up another boog??

Thanks again for taking time out of your vacation to work on this project ;-)
Comment 4 Donnie Berkholz (RETIRED) gentoo-dev 2003-11-28 18:39:09 UTC
Because imake can't set up parallel makes by default. A patch that forces it to do so results in random build failures.
Comment 5 Donnie Berkholz (RETIRED) gentoo-dev 2003-11-28 18:57:28 UTC
Looks like you accidentally changed the summary. Fixing.