Bug#741245: [hppa][patch] icedove : FTBFS on hppa, patch attached.

Helge Deller deller at gmx.de
Mon Mar 10 18:40:44 UTC 2014


Hi Carsten,

On 03/10/2014 05:23 PM, Carsten Schoenert wrote:
>> icedove fails to build on the hppa (parisc) architecture.
>> Fail-Log is here:
>> http://buildd.debian-ports.org/status/package.php?p=icedove&suite=sid
>>
>> The attached patch fixes it.
>> IMPORTANT: Please apply it to the mozilla/ directory inside iceweasel.

^^^ I meant "icedove" here actually..
 
> great to see patches. Thanks for contributing. I add
> pkg-mozilla-maintainer as well to forward your suggests to other Debian
> Mozilla Maintainers as you say your patch needs to apply to the
> Iceweasel build as well.

Yes, it's exactly the same patch.
On iceweasel it should be applied to the top-sourcedir.
On icedove it should be applied to the mozilla/ subdir.

>> By the way, the same problem happened in iceweasel as well.
>> The patch is the same, bugzilla for iceweasel is:
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737332


>> --- iceweasel-24.2.0esr.orig/js/src/gc/RootMarking.cpp
>> +++ iceweasel-24.2.0esr/js/src/gc/RootMarking.cpp
>> @@ -320,7 +320,7 @@ MarkConservativeStackRoots(JSTracer *trc
>>  
>>      uintptr_t *stackMin, *stackEnd;
>>  #if JS_STACK_GROWTH_DIRECTION > 0
>> -    stackMin = rt->nativeStackBase;
>> +    stackMin = reinterpret_cast<uintptr_t *>(rt->nativeStackBase);
> 
> This looks probably o.k. to me. But I haven't tested it for amd64/i386.
> Should work.

This is inside the 
  #if JS_STACK_GROWTH_DIRECTION > 0
  ...
  #endif
path.
Only the parisc (=hppa) and the "metag" processor architecture do have a stack with grows upwards.
x86_64, ia64, sparc and on all others the stack grows down.
That means, this code change will not affect any other debian architecture and this is the
reason that this FTBFS was not detected earlier.
The metag arch isn't supported by debian yet AFAIK. 

>>      stackEnd = cgcd->nativeStackTop;
>>  #else
>>      stackMin = cgcd->nativeStackTop + 1;
>> diff -up iceweasel-24.2.0esr/js/src/jsapi.cpp.org iceweasel-24.2.0esr/js/src/jsapi.cpp
>> --- iceweasel-24.2.0esr/js/src/jsapi.cpp.org	2014-02-01 19:22:54.488625002 +0000
>> +++ iceweasel-24.2.0esr/js/src/jsapi.cpp	2014-01-31 13:28:30.309882024 +0000
>> @@ -865,7 +865,7 @@ JSRuntime::JSRuntime(JSUseHelperThreads
>>      PodZero(&atomState);
>>  
>>  #if JS_STACK_GROWTH_DIRECTION > 0
>> -    nativeStackLimit = UINTPTR_MAX;
>> +    // nativeStackLimit = UINTPTR_MAX;
> 
> Can you point a little bit why this work? I believe this change will
> break other platforms so we have to put this into a #ifdef #endif
> statement.

Same as mentioned above.
This is already inside the 
  #if JS_STACK_GROWTH_DIRECTION > 0
statement, so it's safe and will not affect any other platform.

Helge



More information about the pkg-mozilla-maintainers mailing list