Bug 40037 - Cannot build mono on PPC32 (BE) when PPC_64K_PAGES is set
Summary: Cannot build mono on PPC32 (BE) when PPC_64K_PAGES is set
Status: NEW
Alias: None
Product: Runtime
Classification: Mono
Component: JIT (show other bugs)
Version: unspecified
Hardware: Other Linux
: --- normal
Target Milestone: ---
Assignee: Bugzilla
URL: https://bugs.debian.org/819711
Depends on:
Blocks:
 
Reported: 2016-04-01 07:19 UTC by malat
Modified: 2016-04-11 08:26 UTC (History)
2 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
default output (173.20 KB, text/plain)
2016-04-01 07:32 UTC, malat
Details
default valgrind output (193.39 KB, text/plain)
2016-04-01 07:32 UTC, malat
Details
default valgrind+helgrind output (1.52 MB, text/plain)
2016-04-01 07:33 UTC, malat
Details
partial patch (669 bytes, text/plain)
2016-04-11 08:26 UTC, malat
Details

Description malat 2016-04-01 07:19:45 UTC
When trying to build mono from github on POWER7 (Debian ppc64 kernel, big endian, ppc32 userland)

Some exception is thrown while executing the static constructor of System.Console

To reproduce

> checkout from github (using master)
> autogen.sh --prefix=$HOME/blah
> make get-monolite-latest

Everything compiles fine on native side, but when starting to build mcs profiles, running mono fails

> make V=1 PROFILE=basic

[...]
#4  major_free_swept_blocks (allowance=<optimized out>) at sgen-marksweep.c:1977
[...]
Comment 1 malat 2016-04-01 07:26:36 UTC
I've tried to reduce the case to a minimal command line. The flag '-unsafe' and '-d:ASYNC' seems to be important here:

% ./mono basic.exe -d:NET_4_5 -unsafe -d:ASYNC -target:library -out:System.Xml.dll @System.Xml.dll.sources >& minimal.log

I was not able to reduce the number of files present in `System.Xml.dll.sources` so I had to use them all.
Comment 2 malat 2016-04-01 07:27:48 UTC
The system in use is:

% cat /proc/cpuinfo 
processor	: 0
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 1
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 2
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 3
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 4
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 5
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 6
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

processor	: 7
cpu		: POWER7 (architected), altivec supported
clock		: 3550.000000MHz
revision	: 2.1 (pvr 003f 0201)

timebase	: 512000000
platform	: pSeries
model		: IBM,8231-E2B
machine		: CHRP IBM,8231-E2B
Comment 3 malat 2016-04-01 07:31:53 UTC
I am attaching some various outputs:

% ./mono basic.exe -d:NET_4_5 -unsafe -d:ASYNC -target:library -out:System.Xml.dll @ll.sources >& minimal.log

% valgrind ./mono basic.exe -d:NET_4_5 -unsafe -d:ASYNC -target:library -out:System.Xml.dll @ll.sources >& valgrind.log

% valgrind --tool=helgrind ./mono basic.exe -d:NET_4_5 -unsafe -d:ASYNC -target:library -out:System.Xml.dll @ll.sources >& helgrind.log
Comment 4 malat 2016-04-01 07:32:18 UTC
Created attachment 15580 [details]
default output
Comment 5 malat 2016-04-01 07:32:39 UTC
Created attachment 15581 [details]
default valgrind output
Comment 6 malat 2016-04-01 07:33:15 UTC
Created attachment 15582 [details]
default valgrind+helgrind output
Comment 7 malat 2016-04-11 08:25:59 UTC
The following patch fixes the symptoms.
Comment 8 malat 2016-04-11 08:26:52 UTC
Created attachment 15666 [details]
partial patch

I do not like this patch, but unless something more runtim-ish is implemented I do not see an alternative patch.

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