Open paulfloyd opened 4 years ago
Linux setup_client_stack has, at the end of the function
/* Record stack extent -- needed for stack-change code. */
VG_(clstk_start_base) = anon_start -inner_HACK;
VG_(clstk_end) = VG_(clstk_start_base) + anon_size +inner_HACK -1;
But on FreeBSD this is just
/* Record stack extent -- needed for stack-change code. */
VG_(clstk_start_base) = clstack_start;
VG_(clstk_end) = clstack_end;
The above change doesn't seem to help much.
I also see that the vg-in-place script used dirname, which uses capability mode.
Haven't tried this for a while. With a GCC built outer and clang built inner I get
Warning: client switching stacks? SP change: 0xfbbfeb00 --> 0x282ceb90 to suppress, use: --max-stackframe=745341072 or greater
Linux also generates the message above
valgrind: mmap(0x4caf000, 20480) failed in UME with error 22 (Invalid argument). valgrind: this can be caused by executables with very large text, data or bss segments.
With -d -d on the inner I see
--3270:2: aspacem 9: ANON 0004c7f000-0004caefff 196608 rwx-- --3270:2: aspacem 10: 0004caf000-0004d5bfff 708608 --3270:2: aspacem 11: ANON 0004d5c000-0004e5bfff 1048576 rwx--
so this request should work according to the inner.
However according to the outer
--3293:1: aspacem 13: ANON 0004c20000-00051c2fff 5910528 rwx--
Self hosting on i386 just produces 1000 errors then terminates.