This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Totally Fix PR target/10129 ADA bootstrap failure on Darwin


This is a rewrite of Darwin's pic labels, it is based on Geoff Keating's
suggestion in the bug.
Basically only set the label to "<pic base>" or "-<pic base>" when in the rtl
but use ASM_OUTPUT_LABELREF to write out the correct label for the "pic base".


This Patch also includes the pervious one for fixing the common problem.

It bootstraps with all languages enabled (I needed the PATCH in 10900 for the trampolines
fix to bootstrap Ada on the third stage).


Could someone run the testsuite on this patch as I do not have a fixed kernel?

ChangeLog:
2003-07-02  Andrew Pinski  <pinskia@physics.uc.edu>

* config/darwin.c (darwin_encode_section_info): When the decl has
a DECL_INITIAL, it is only defined also when it is not a common.
(machopic_function_base_name): Only Return "<pic base>" or "-<pic base>".
(machopic_real_function_base_name): Return the true pic label.
* config/darwin.h (ASM_OUTPUT_LABELREF): Support the pic base label.
* config/darwin-proto.h (machopic_real_function_base_name): Prototype.



Patch:



Thanks, Andrew Pinski



On Wednesday, Jul 2, 2003, at 02:32 US/Eastern, Andrew Pinski wrote:

The problem is that the Ada front end is marking
a variable as common but is also having a DECL_INITIAL which
confuses the Darwin back-end.

This patch unconfuses the Darwin back-end.

I now get back to the original bootstrap failure of:
stage1/xgcc -Bstage1/ -B/Volumes/UFS_Partition/pinskia/fsf-clean/powerpc-apple-darwin6.6/ bin/ -c -g -O2 -gnatpg -gnata -I- -I. -Iada -I/Volumes/UFS_Partition/pinskia/src/fsf/gcc-clean/src/gcc/ada /Volumes/UFS_Partition/pinskia/src/fsf/gcc-clean/src/gcc/ada/ali.adb -o ada/ali.o
/var/tmp//cc1BemnQ.s:10438:non-relocatable subtraction expression, "L00000000149$pb" minus "LSJR780"
/var/tmp//cc1BemnQ.s:10438:symbol: "L00000000149$pb" can't be undefined in a subtraction expression
/var/tmp//cc1BemnQ.s:10437:non-relocatable subtraction expression, "L00000000149$pb" minus "LSJR780"
/var/tmp//cc1BemnQ.s:10437:symbol: "L00000000149$pb" can't be undefined in a subtraction expression
/var/tmp//cc1BemnQ.s:unknown:Undefined local symbol L00000000149$pb


This is a bug in restoring the PIC register.
So I am getting closer to bootstraping with Ada, will look into this other problem later today.



ChangeLog: 2003-07-02 Andrew Pinski <pinskia@physics.uc.edu>

	* config/darwin.c (darwin_encode_section_info): When the decl has
	a DECL_INITIAL, it is only defined also when it is not a common.


Patch: <temp1.diff>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]