Your thoughts on RELLEB are welcome!
Does anyone really care about relocatable object file size? If they
do, wouldn't they be better off using a compressed file system?
--
Alan Modra
Australia Development Lab, IBM
On Mon, Nov 07, 2022 at 06:23:45PM +, Joseph Myers wrote:
> On Mon, 7 Nov 2022, Alan Modra via Binutils wrote:
>
> > a) that top-level binutils/gdb patches don't get applied to the gcc
> >git repository in a timely manner, or
>
> If a toplevel patch is appr
so you could
simply leave your name in binutils/MAINTAINERS where it is but put Max
on the line before your entry.
--
Alan Modra
Australia Development Lab, IBM
e (const_int) in another reg first then
change the expression to (op (reg) (reg2)).
Other places, eg. rtlanal.c:seq_cost do pass the entire SET.
--
Alan Modra
Australia Development Lab, IBM
t the ones that are ready first, then
"git push origin :master"
just to push up to the relevant commit. That works quite well for me.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Jan 15, 2020 at 03:11:13AM +, Gary Oblock wrote:
> If you just do a clone and don't checkout a branch, is this equivalent
> the top of the trunk in the old scheme?
Yes. More details in "git help clone".
--
Alan Modra
Australia Development Lab, IBM
ing
glibc that could be installed in a non-standard location and co-exist
with other system libraries. I worked around..
> Inconsistency detected by ld.so: get-dynamic-info.h: 147:
> elf_get_dynamic_info:
> Assertion `info[DT_RPATH] == NULL' failed!
..this by patching glibc.
-
On Mon, Sep 23, 2019 at 11:14:12AM +0200, Florian Weimer wrote:
> * Alan Modra:
>
> > On Mon, Sep 23, 2019 at 10:37:29AM +0200, Florian Weimer wrote:
> >> * Alan Modra:
> >>
> >> > On Mon, Sep 23, 2019 at 09:42:52AM +0200, Florian Weimer wrote:
> &
On Mon, Sep 23, 2019 at 10:37:29AM +0200, Florian Weimer wrote:
> * Alan Modra:
>
> > On Mon, Sep 23, 2019 at 09:42:52AM +0200, Florian Weimer wrote:
> >> At Cauldron, the question came up whether the dynamic loader needs to
> >> be taught about the new relocati
_TPREL34, and that one only if you allow
-ftls-model=local-exec when building shared libraries and accept that
DF_STATIC_TLS shared libraries that can't be dlopen'd are OK.
See https://sourceware.org/ml/binutils/2019-09/msg00164.html, which
doesn't allow even R_PPC64_TPREL34. I haven&
to a function defined outside the
executable. This case requires a special stub in the executable to
serve as the address of the function.
--
Alan Modra
Australia Development Lab, IBM
On Mon, May 20, 2019 at 02:55:33AM -0500, Segher Boessenkool wrote:
> On Mon, May 20, 2019 at 04:19:54PM +0930, Alan Modra wrote:
> > On Thu, May 16, 2019 at 05:52:42PM -0500, Segher Boessenkool wrote:
> > > Hi Umesh,
> > >
> > > On Thu, May 16, 2019 at 0
dentally, if thunks are broken then it's very
likely local function calls are broken too.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Feb 20, 2019 at 08:57:52PM -0600, Peter Bergner wrote:
> On 2/20/19 4:19 PM, Alan Modra wrote:
> > I forgot to say, gcc-6, gcc-7 and gcc-8 handle your original testcase
> > with the register asm just fine.
>
> Yes, because they don't have my IRA and LRA patches t
I forgot to say, gcc-6, gcc-7 and gcc-8 handle your original testcase
with the register asm just fine.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Feb 20, 2019 at 10:08:07AM -0600, Peter Bergner wrote:
> On 2/19/19 9:09 PM, Alan Modra wrote:
> > On Mon, Feb 18, 2019 at 01:13:31PM -0600, Peter Bergner wrote:
> >> long input;
> >> long
> >> bug (void)
> >> {
> >> register long o
Clearly, we cannot assign
> a register to the "input" variable that is both the same and different
> to the register that is assigned to "output".
No, you certainly can do that. I think you have found a bug in lra.
--
Alan Modra
Australia Development Lab, IBM
nsion to happen even for unsigned type.
>
> is there any way to set 'punsignedp' appropriately here.
No. The call to promote_function_mode in emit_library_call_value_1
does not pass type info (because it isn't available for libcalls).
--
Alan Modra
Australia Development Lab, IBM
d have stpcpy with completely unrelated prototype
> used for something else. In such case we don't want to introduce stpcpy
> into a TU that didn't have such a call. So, we use the existence of
> a matching prototype as a sign that stpcpy can be synthetized.
Why is the test for stpcpy being declared done for the strcpy cases
rather than the stpcpy cases?
--
Alan Modra
Australia Development Lab, IBM
On Thu, Aug 17, 2017 at 04:27:12PM +0200, Michael Matz wrote:
> Hi,
>
> On Mon, 14 Aug 2017, Alan Modra wrote:
>
> > I've opened https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81845 to track
> > the lack of documentation.
>
> You mean like in this paragraph dis
On Tue, Aug 15, 2017 at 03:09:15PM +0800, Liu Hao wrote:
> On 2017/8/14 20:41, Alan Modra wrote:
> >On Sun, Aug 13, 2017 at 10:25:14PM +0930, Alan Modra wrote:
> >>On Sun, Aug 13, 2017 at 03:35:15AM -0700, David Wohlferd wrote:
> >>>Using "m"(*pStr) as a
On Sun, Aug 13, 2017 at 10:25:14PM +0930, Alan Modra wrote:
> On Sun, Aug 13, 2017 at 03:35:15AM -0700, David Wohlferd wrote:
> > Using "m"(*pStr) as an (unused) input parameter has no effect.
>
> Use "m" (*(const void *)pStr) and ignore the warning, or use
&g
urse that is exactly
what *pStr is, but in this context it would be nicer if it meant the
entire array.
--
Alan Modra
Australia Development Lab, IBM
On Tue, Feb 14, 2017 at 06:38:40PM -0600, Segher Boessenkool wrote:
> On Wed, Feb 15, 2017 at 10:36:02AM +1030, Alan Modra wrote:
> > Since we've been talking about obsoleting cpu support, how about
> > getting rid of -many in ASM_CPU_SPEC for gcc-8?
>
> Sure, but
cpus (with presumably run-time
selection of which block of code gets executed depending on cpu).
It used to be just a linux hack, but I see David uses it in aix61.h
and aix71.h too?
--
Alan Modra
Australia Development Lab, IBM
On Thu, Aug 25, 2016 at 01:36:53PM +0200, Florian Weimer wrote:
> * Alan Modra:
>
> > glibc people: As the main user of ifuncs, how do you feel about not
> > declaring functions hidden that are implemented in glibc by ifuncs?
>
> We have run into this before
Discussion started here:
https://gcc.gnu.org/ml/gcc-patches/2016-08/msg01678.html
On Wed, Aug 24, 2016 at 08:51:16PM +0300, Alexander Monakov wrote:
> On Wed, 24 Aug 2016, Alan Modra wrote:
> > Given a hidden visibility function declaration, the toolchain can say
> > that the funct
l see
some resistance to that idea due to the fact that it delivers quite a
nice performance improvement for PIEs.
--
Alan Modra
Australia Development Lab, IBM
On Tue, Apr 19, 2016 at 10:20:23AM +0200, Richard Biener wrote:
> On Tue, Apr 19, 2016 at 7:08 AM, Alan Modra wrote:
> > On Mon, Apr 18, 2016 at 07:59:50AM -0700, H.J. Lu wrote:
> >> On Mon, Apr 18, 2016 at 7:49 AM, Alan Modra wrote:
> >> > On Mon, Apr 18, 201
On Mon, Apr 18, 2016 at 07:59:50AM -0700, H.J. Lu wrote:
> On Mon, Apr 18, 2016 at 7:49 AM, Alan Modra wrote:
> > On Mon, Apr 18, 2016 at 11:01:48AM +0200, Richard Biener wrote:
> >> To summarize: there is currently no testcase for a wrong-code issue
> >> because t
ing to the var from
code within the shared library, that now merrily writes to a .dynbss
copy.
--
Alan Modra
Australia Development Lab, IBM
to
set (reg tmp) (high (const (minus ((symbol_ref) (reg 2)
.. mem (lo_sum (reg tmp) (const (minus ((symbol_ref) (reg 2)
both high and lo_sum reference r2 and the linker could happily replace
rtmp in the lo_sum insn with r2 when the high address is known to be
zero.
Bill, do you have test cases for the alias problem? Is this something
that needs fixing for gcc-6?
--
Alan Modra
Australia Development Lab, IBM
t-addr-optimize.
--
Alan Modra
Australia Development Lab, IBM
ll run into
trouble trying to define a function with more than eight float args if
writing K&R code. Old programmers tend to know about such issues, and
don't use float function parameters in K&R code. :)
Incidentally, there are other rather more nasty parameter passing
problems with ppc32, ones I would have liked to fix. For instance,
"complex double" is passed in 4 gprs.
--
Alan Modra
Australia Development Lab, IBM
eir code in order to fix an ABI problem. That may be more
disrupting than just leaving gcc incompatible with other compilers.
--
Alan Modra
Australia Development Lab, IBM
master with your output_type changes.
This is OK to commit with a suitable ChangeLog. I think a separate ld
option is best too, because historically -static and its aliases
-Bstatic, -dn, -non_shared really are about what type of libraries are
accepted rather than choosing linker output type.
--
Ala
On Mon, Aug 17, 2015 at 10:38:22AM -0700, Steve Ellcey wrote:
> On Tue, 2015-08-11 at 10:05 +0930, Alan Modra wrote:
>
> > > The 'and' instruction is where the stack gets aligned and if I remove that
> > > one instruction, everything works. I think I need to put
to me that you
have more than just CFI problems. How do you restore sp on return
from the function, assuming sp wasn't 16-byte aligned to begin with?
Past that "and $sp,$sp,$3" you don't have any means of calculating
the original value of sp! (Which of course is why you also can't find
a way of representing the frame address.)
--
Alan Modra
Australia Development Lab, IBM
r a year ago so I
guess this shows that not too many people use combined binutils+gcc
builds nowadays. I've always found combined binutils+gcc builds not
worth the bother compared to simply building and installing binutils
first, as Jim suggests.
--
Alan Modra
Australia Development Lab, IBM
On Mon, Jun 29, 2015 at 09:34:40AM -0500, Segher Boessenkool wrote:
> On Mon, Jun 29, 2015 at 05:16:39PM +0930, Alan Modra wrote:
> > Note that we already have insn_rtx_cost, and it returns a minimum cost
> > for a SET, so register move insns get a cost of 1 insn. Howev
ifficulty is in separating out the whole insn cases from the
partial insn cases.
Note that we already have insn_rtx_cost, and it returns a minimum cost
for a SET, so register move insns get a cost of 1 insn. However,
despite insn_rtx_cost starting life in combine.c, even combine doesn't
use it in
r3) (plus (reg x) (const_int 1)))
(set (reg r4) (plus (reg x) (const_int 1)))
So in these examples we'd really like register moves to cost one
insn. Hmm, at least, moves from hard regs ought to cost something.
--
Alan Modra
Australia Development Lab, IBM
as a series of adds and shifts against the
cost of a multiply. If all those adds and shifts are costed at zero,
then synth_mult can't do its job.
So what should that comment say?
--
Alan Modra
Australia Development Lab, IBM
On Tue, Jun 02, 2015 at 11:28:09AM -0500, Segher Boessenkool wrote:
> On Tue, Jun 02, 2015 at 08:49:37AM +0930, Alan Modra wrote:
> > but and64_2_operand doesn't include all of and_operand!
>
> Maybe I'm slow today, but I don't see it? Do you have an example?
I ne
On Mon, Jun 01, 2015 at 08:39:05AM -0500, Segher Boessenkool wrote:
> On Mon, Jun 01, 2015 at 11:33:18AM +0930, Alan Modra wrote:
> > Unifying andsi_mask with anddi_mask, and the fact that constraints for
> > const_int see VOIDmode rather than the operand mode is why we get
> &g
On Sat, May 30, 2015 at 08:02:20AM -0500, Segher Boessenkool wrote:
> On Sat, May 30, 2015 at 10:47:27AM +0930, Alan Modra wrote:
> > Huh, that does look like you've destroyed my claim about SImode AND.
>
> Carefully worded :-)
Yes, I wrote it meaning as in refuted an argume
On Fri, May 29, 2015 at 10:00:04AM -0500, Segher Boessenkool wrote:
> On Fri, May 29, 2015 at 11:20:08PM +0930, Alan Modra wrote:
> > On Fri, May 29, 2015 at 07:58:38AM -0500, Segher Boessenkool wrote:
> > > On Fri, May 29, 2015 at 12:41:20PM +0930, Alan Modra wrote:
> >
On Fri, May 29, 2015 at 07:58:38AM -0500, Segher Boessenkool wrote:
> On Fri, May 29, 2015 at 12:41:20PM +0930, Alan Modra wrote:
> > +/* Describe how rtl operations on registers behave on this target when
> > + operating on less than the entire register. */
> >
: (GET_CODE (OP) == AND \
+ || GET_CODE (OP) == ZERO_EXTEND \
+ || GET_CODE (OP) == ASHIFT \
+ || GET_CODE (OP) == ROTATE \
+ || GET_CODE (OP) == LSHIFTRT)\
+ ? ZERO_EXTEND \
+ : (GET_CODE (OP) == SIGN_EXTEND \
+ || GET_CODE (OP) == ASHIFTRT)\
+ ? SIGN_EXTEND \
+ : UNKNOWN)
+
/* Define if loading in MODE, an integral mode narrower than BITS_PER_WORD
will either zero-extend or sign-extend. The value of this macro should
be the code that says which one of the two operations is implicitly
--
Alan Modra
Australia Development Lab, IBM
creaed I don't think you'll see them
generated at all, which would fix my testcase but probably regress
others.
--
Alan Modra
Australia Development Lab, IBM
Does anyone have any clues as to how I might fix this? I'm not keen
on adding an insn_and_split to rs6000.md to recognize the 6 -> 8
combination, because one of the aims of the wider patch I was working
on was to remove patterns like rotlsi3_64, ashlsi3_64, lshrsi3_64 and
ashrsi3_64. Addi
sn't do anything fancy, just stops gratuitous register
reordering. If simplification or canonicalization occurs, then
registers may well be reordered.
--
Alan Modra
Australia Development Lab, IBM
On Thu, May 21, 2015 at 07:39:16AM -0500, Segher Boessenkool wrote:
> On Thu, May 21, 2015 at 08:06:04PM +0930, Alan Modra wrote:
> > FAIL: gcc.target/powerpc/ti_math1.c scan-assembler-times adde 1
>
> It doesn't trigger on big-endian; what is different?
Register depen
DI 76 ca)
(reg:DI 165 [ val+8 ]))
(reg:DI 169 [+8 ]))
and the latter has the ca register in the wrong place. So a split is
tried and you get addze. I'm working on this. The reordering happens
inside simplify_plus_minus.
--
Alan Modra
Australia Development Lab, IBM
On Wed, Apr 15, 2015 at 04:10:33PM -0500, Joel Sherrill wrote:
> Based on the grep, the .4byte directives are referencing a bogus symbol.
>
> Does this look like a GCC bug?
Yes, unless you have some horrible asm there referencing the symbol.
--
Alan Modra
Australia Development Lab, IBM
sable-plugin too, but
shouldn't this be automatic if --disable-shared is given?
--
Alan Modra
Australia Development Lab, IBM
On Thu, Feb 12, 2015 at 06:55:30PM -0500, Rich Felker wrote:
> On Fri, Feb 13, 2015 at 10:12:11AM +1030, Alan Modra wrote:
> > I posted support for TLSDESC on powerpc back in 2009 (search for
> > powerpc _tls_get_addr call optimization). The patch wasn't reviewed,
> > an
odel "for performance" are a problem that's not going to go away
> until TLSDESC gets properly adopted.
I posted support for TLSDESC on powerpc back in 2009 (search for
powerpc _tls_get_addr call optimization). The patch wasn't reviewed,
and I didn't push it because my benchmark tests didn't show a much of
a gain. Quite possibly I wasn't using the right benchmark.
--
Alan Modra
Australia Development Lab, IBM
On Tue, Aug 05, 2014 at 08:18:06PM -0400, Ulrich Drepper wrote:
> On Tue, Aug 5, 2014 at 12:57 AM, Alan Modra wrote:
> > What version linker? In particular, do you have the fix for PR12975?
>
> The Fedora 19 version. I think it hasn't changed since then which
> means it
ta to the linker plugin. So it's a linker bug AFAIU.
What version linker? In particular, do you have the fix for PR12975?
--
Alan Modra
Australia Development Lab, IBM
the operand constraints. What's
more, you can't make them match without breaking up the insn, or
adding a whole lot of extra alternatives.
--
Alan Modra
Australia Development Lab, IBM
d that you could flush arguments to it. That's not true in the
> case where the caller had a prototype for the callee in-scope (and
> the callee was not a varargs function).
>
> Right? Just want to make sure I understand the problem.
Exactly correct.
--
Alan Modra
Australia Development Lab, IBM
On Mon, Jun 02, 2014 at 12:00:41PM +0200, Florian Weimer wrote:
> On 05/31/2014 08:56 AM, Alan Modra wrote:
>
> >>It's fine to change ABI when compiling an old-style function
> >>definition for which a prototype exists (relative to the
> >>non-pro
On Fri, May 30, 2014 at 09:22:30PM +0200, Florian Weimer wrote:
> On 05/26/2014 09:38 AM, Alan Modra wrote:
>
> >Background: The ELFv2 ABI requires a parameter save area only when
> >stack is actually used to pass parameters, and since varargs are
> >passed on the stack,
On Fri, May 30, 2014 at 11:27:52AM -0600, Jeff Law wrote:
> On 05/26/14 01:38, Alan Modra wrote:
> >PR61300 shows a need to differentiate between incoming and outgoing
> >REG_PARM_STACK_SPACE for the PowerPC64 ELFv2 ABI, due to code like
> >function.c:assign_parm_is_stack_pa
PACE
+#undef REG_PARM_STACK_SPACE
+#define REG_PARM_STACK_SPACE INCOMING_REG_PARM_STACK_SPACE
+#endif
+
/* If not defined, pick an appropriate default for the offset of dynamically
allocated memory depending on the value of ACCUMULATE_OUTGOING_ARGS,
REG_PARM_STACK_SPACE, and OUTGOING_REG_PARM_S
On Tue, Nov 26, 2013 at 10:01:23AM +0100, Steven Bosscher wrote:
> On Tue, Nov 26, 2013 at 6:17 AM, Alan Modra wrote:
> > Was Re: [buildrobot] [PATCH] mips: Really remove ENTRY_BLOCK_PTR
> > On Wed, Nov 20, 2013 at 10:08:45AM +0100, Steven Bosscher wrote:
> >> This patch
On Fri, Nov 22, 2013 at 09:31:18AM +, Paulo Matos wrote:
> > From: Alan Modra [mailto:amo...@gmail.com]
> > On Wed, Nov 20, 2013 at 05:06:13PM +, Paulo Matos wrote:
> > > I am looking into how rs6000 implements load multiple code
> > [snip]
> >
&g
On Tue, Sep 24, 2013 at 01:13:53PM +0100, Jonathan Wakely wrote:
> On 24 September 2013 02:22, Alan Modra wrote:
> >
> > Try compiling that testcase with -static rather than -Wl,--as-needed.
> > You'll hit std::system_error just like you do here. I believe that is
>
readed"
should continue to use weak references.
Solving the problem with --as-needed and libstdc++.so isn't so easy.
One solution might be to split off thread support from libstdc++.so.6.
Otherwise we'd need to solve the transitive reference somehow.
ie. Teach the linker that a
On Mon, Jun 10, 2013 at 06:31:55PM -0700, Andrew Pinski wrote:
> On Mon, Jun 10, 2013 at 6:00 PM, David Edelsohn wrote:
> > On Mon, Jun 10, 2013 at 8:26 PM, Alan Modra wrote:
> >
> >> The following patch disables lower-subreg for double double TFmode,
> >> boot
cc/doc/tm.texi.in
===
--- gcc/doc/tm.texi.in (revision 199781)
+++ gcc/doc/tm.texi.in (working copy)
@@ -6375,6 +6375,12 @@
registers on machines with lots of registers.
@end deftypefn
+@hook TARGET_INIT_LOWER_SUBREG
+This hook al
C ""
-#defineCC1_ENDIAN_LITTLE_SPEC "\
-%{!mstrict-align: %{!mno-strict-align: \
-%{!mcall-i960-old: \
- -mstrict-align \
-} \
-}}"
+#defineCC1_ENDIAN_LITTLE_SPEC ""
#defineCC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_big)"
--
Alan Modra
Australia Development Lab, IBM
n
dlopen/dlclose happens in another thread. To be clear, I'm talking
about a dlclose on an object that your thread doesn't access. Such a
dlclose shouldn't affect your thread in any way. But if glibc's
list of loaded objects was allowed to change while your thread was
running dl_iterate_phdr, then dl_iterate_phdr could potentially read
freed list entries.
--
Alan Modra
Australia Development Lab, IBM
nd_Find_registered_FDE is to support an older method of
finding FDEs. Newer executables and shared libraries on linux will
use PT_GNU_EH_FRAME, so don't expect _Unwind_Find_registered_FDE
to do anything except waste time! google eh_frame_hdr for more info.
C++ and threading is a minefield.
--
of
> unsigned long 64.
Nope, unsigned long is 32 bits for -m32.
--
Alan Modra
Australia Development Lab, IBM
x27;t it?
--
Alan Modra
Australia Development Lab, IBM
traint everywhere. For example,
long long llo (long long *x) { return x[4095]; }
will generate better powerpc -m32 -O2 code with your patch applied, I
think.
--
Alan Modra
Australia Development Lab, IBM
ot;*,load,store,*,*,*,fp,fpload,fpstore,mfjmpr,mtjmpr,*,vecsimple")
+ [(set_attr "type"
"store,load,*,*,*,*,fp,fpload,fpstore,mfjmpr,mtjmpr,*,vecsimple")
(set_attr "length" "4,4,4,4,4,20,4,4,4,4,4,4,4")])
;; immediate value valid for a single instruction hiding in a const
On Mon, Apr 23, 2012 at 06:07:52PM +0200, Steven Bosscher wrote:
> On Mon, Apr 23, 2012 at 4:43 PM, Alan Modra wrote:
> > On Mon, Apr 23, 2012 at 02:50:13PM +0200, Steven Bosscher wrote:
> >> csui = (ONEUL << a);
> >> b = ((csui & cst) != 0);
> &g
& cst) >> a;
Other targets would probably benefit too.
--
Alan Modra
Australia Development Lab, IBM
1, OPTAB_LIB_WIDEN);
--
Alan Modra
Australia Development Lab, IBM
hether something won't be
> spilled on the stack and we need/want 32-byte aligned stack slots
> for that spilling.
Huh? thread_prologue_and_epilogue is after reload. So your backend
ought to be able to figure out whether an aligned stack is needed.
--
Alan Modra
Australia Development Lab, IBM
On Mon, Oct 31, 2011 at 10:58:03AM -0500, Moffett, Kyle D wrote:
> I have not yet been able to figure out if it's a libgcc issue or an
> actual compiler issue.
It is a gcc bug. I've added a comment to the PR.
--
Alan Modra
Australia Development Lab, IBM
On Thu, Sep 22, 2011 at 12:58:51AM +0930, Alan Modra wrote:
> I spent a little time today looking at why shrink wrap is failing to
> help on PowerPC, and it turns out that the optimization simply doesn't
> trigger that often due to prologue clobbered regs. PowerPC uses r0 as
&
rtbegin?.o(.ctors))
> +${CTORS}
> ${CONSTRUCTING+${CTOR_END}}
>}"
> DTOR=".dtors${CONSTRUCTING-0} :
> @@ -267,9 +291,7 @@ DTOR=".dtors${CONSTRUCTING-0} :
> ${CONSTRUCTING+${DTOR_START}}
> KEEP (*crtbegin.o(.dtors))
> KEEP (*crtbegin?.o(.dtors))
> -KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
> -KEEP (*(SORT(.dtors.*)))
> -KEEP (*(.dtors))
> +${DTORS}
> ${CONSTRUCTING+${DTOR_END}}
>}"
No need to make any changes to .ctors or .dtors. If .init_array
and .fini_array match input .ctors or .dtors sections, then any later
match will simply be ignored.
--
Alan Modra
Australia Development Lab, IBM
ong way to go. On the other hand, BFD is full of
bad ideas.. I'm not strongly opposed to your patch myself.
HJ, you showed that link times for gcc did not regress too much with
your 2 stage lto link patch. It would be more interesting to see the
results for a large C++ project, mozilla for
ting zlib.
I'm against importing zlib into binutils, and I think we should keep
support of compressed debug sections conditional, to avoid potential
bootstrap problems or circular dependencies.
--
Alan Modra
Australia Development Lab, IBM
And I
> can't even help, I'm not a ppc maintainer.
I also cannot approve gcc patches.
--
Alan Modra
Australia Development Lab, IBM
(watch out for
the .got header!).
--
Alan Modra
Australia Development Lab, IBM
oo:
addis 11,2,x...@toc@ha
addis 9,2,y...@toc@ha
lwz 3,x...@toc@l(11) <-- TOC/GOT pointer relative
lwz 0,y...@toc@l(9)
add 3,3,0
extsw 3,3
blr
x...@toc is equivalent to @GOTOFF on other processors.
--
Alan Modra
Australia Development Lab, IBM
On Tue, Jun 08, 2010 at 10:27:03PM +0930, Alan Modra wrote:
> PowerPC64 gcc support for a larger TOC via -mcmodel option.
[snip]
I'm having second thoughts about the optimization I added to PowerPC64
gcc with the patch hunk below. Its effect is to use a more efficient
TOC/GOT pointer
e
fp regs rather than gp regs.
--
Alan Modra
Australia Development Lab, IBM
On Sun, Feb 21, 2010 at 12:27:04PM -0600, Jon Turner wrote:
> The program in question has been compiled with -pg for all
> source code files.
Linked statically too? If not, the missing time is probably spent in
libc.so or other shared libraries.
--
Alan Modra
Australia Development Lab, IBM
lable since including non-pic
# code would insert text relocations into libopcodes.
--
Alan Modra
Australia Development Lab, IBM
I'm of
course aware that arrays can be initialized and their size set,
structs and unions initialized, but by and large, in C, an
initialization is simply an assignment.) So, why single out the
initial assignment? If skipping it deserves a warning then skipping
other assignments deserves a warning too, which would be ridiculous.
--
Alan Modra
Australia Development Lab, IBM
Found it, finally. powerpc ld --relax had a bug affecting -fPIC
code. See http://sourceware.org/ml/binutils/2008-08/msg00040.html
--
Alan Modra
Australia Development Lab, IBM
ing sections are handled specially by elf32.em. */
*(.gnu.warning)
${RELOCATING+${OTHER_TEXT_SECTIONS}}
} =${NOP-0}
--
Alan Modra
Australia Development Lab, IBM
he destructor function run from .fini and crtend.o defines
the constructor run from .init. It really should be the other way
around, since this arrangement results in maximmum offset branches,
from the .init section located before .text to a function at the end
of .text, and from the .fini section located
ler on a native host without too much trouble.
--
Alan Modra
Australia Development Lab, IBM
1 - 100 of 129 matches
Mail list logo