From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller To: ghazi@caip.rutgers.edu Cc: law@cygnus.com, egcs@egcs.cygnus.com Subject: Re: egcs-1.2 stuff Date: Sun, 28 Mar 1999 06:24:00 -0000 Message-id: <199903281433.GAA30514@piglet.twiddle.net> References: <199903281412.JAA02308@caip.rutgers.edu> <199903281412.JAA02308@caip.rutgers.edu> X-SW-Source: 1999-03/msg00914.html Date: Sun, 28 Mar 1999 09:12:45 -0500 (EST) From: "Kaveh R. Ghazi" I think we should address the -fpic/-fPIC failures on the sparc. This would affect glibc or really any shared library. IIRC, Dave had a preliminary fix early last fall around the time we split the 1.1.x branch. For some reason it never went in. (?) ... Of course maybe this is completely unrelated to the failures I'm seeing today. :-) For an example of the recent -fpic/-fPIC failures (and beyond above what normally occurs) see: I think they are probably related, and in any event the bug I fixed in that change should still exist in the mainline cvs sources. At the time I came up with that fix, Jeff and I had decided that the correct fix was to check for and emit the get_pc sequences in a completely different place so that all possible cases were handled (this meant doing the checks after reload) The bug would trigger in cases where there were no PIC references in a function, but usage of a float constant in float regs would trigger a PIC reference to the data section during reload. At this point the sparc backend would be stymied because it checked before reload whether the "get_pc" sequence needed to be emitted. So it never was, and the PIC register contained garbage and obviously caused the resulting code to crash. Later, David S. Miller davem@redhat.com From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller To: ghazi@caip.rutgers.edu Cc: law@cygnus.com, egcs@egcs.cygnus.com Subject: Re: egcs-1.2 stuff Date: Wed, 31 Mar 1999 23:46:00 -0000 Message-ID: <199903281433.GAA30514@piglet.twiddle.net> References: <199903281412.JAA02308@caip.rutgers.edu> X-SW-Source: 1999-03n/msg00921.html Message-ID: <19990331234600.v8DOE3rhJkqxE1Aib4xYM3TdZQtllPS_GMjttw1RIY0@z> Date: Sun, 28 Mar 1999 09:12:45 -0500 (EST) From: "Kaveh R. Ghazi" I think we should address the -fpic/-fPIC failures on the sparc. This would affect glibc or really any shared library. IIRC, Dave had a preliminary fix early last fall around the time we split the 1.1.x branch. For some reason it never went in. (?) ... Of course maybe this is completely unrelated to the failures I'm seeing today. :-) For an example of the recent -fpic/-fPIC failures (and beyond above what normally occurs) see: I think they are probably related, and in any event the bug I fixed in that change should still exist in the mainline cvs sources. At the time I came up with that fix, Jeff and I had decided that the correct fix was to check for and emit the get_pc sequences in a completely different place so that all possible cases were handled (this meant doing the checks after reload) The bug would trigger in cases where there were no PIC references in a function, but usage of a float constant in float regs would trigger a PIC reference to the data section during reload. At this point the sparc backend would be stymied because it checked before reload whether the "get_pc" sequence needed to be emitted. So it never was, and the PIC register contained garbage and obviously caused the resulting code to crash. Later, David S. Miller davem@redhat.com