This is the mail archive of the
mailing list for the glibc project.
Re: initfini.c -> crt[in].S
> I'd suggest 2.16 release as that deadline (by which we declare non-updated
> architectures to be unmaintained, whether or not they have someone
> nominally listed as maintainer).
Let's put a firm date on it. We'd like to have release procedures more
coherent by 2.16, but we have yet to actually do anything about making them
For the last few years, glibc releases have coincided with Fedora releases,
which are about every six months. This thread is not the place to really
discuss the release cycle plans, but we can use this as a guide for setting
this deadline for arch maintainers. I think we should be aiming for
cutting our release branches by the time Fedora goes to beta. According to
http://fedoraproject.org/wiki/Releases/17/Schedule that will be on April
3rd (it's not uncommon for these dates to slip by a week), with the "change
deadline" on March 20. Let's say April 1 is the deadline for crt[in].S.
> * csu/Makefile: Support crti.S and crtn.S in source directory.
It's become somewhat common to use vague log entries like this. But IMHO
the standard remains a log entry that mentions the variables and targets
added, removed, or changed.
> +ifneq (,$(wildcard $(sysdirs:%=%/crti.S)))
> +vpath crti.S $(sysdirs)
> +vpath crtn.S $(sysdirs)
Why are these necessary? The usual sysd-rules rules ought to find these
just like all other sources are found.
> +CFLAGS-crti.S = -g0
> +CFLAGS-crtn.S = -g0
I'm not convinced these are desireable. They made sense for the C code
when it was being sliced up. But now these are just assembly sources like
all the others, so why shouldn't they have normal source line information?
CFI also seems worthwhile, though that could come later since we didn't
have it before.
> +CFLAGS-pt-crti.S = -g0
> +CFLAGS-pt-crtn.S = -g0
> +/* Special .init and .fini section support for x86. NPTL version.
s/for x86. NPTL version./for libpthread./
> + Copyright (C) 1995-1997,2000-2002,2012 Free Software Foundation, Inc.
This is actually a wholly new file at this point. Just use 2012.
> diff --git a/nptl/pt-crtn.S b/nptl/pt-crtn.S
> new file mode 100644
> index 0000000..b7075da
> --- /dev/null
> +++ b/nptl/pt-crtn.S
> @@ -0,0 +1 @@
> +#include <crtn.S>
Then why do we need it at all? We can just use the vanilla crtn.o for
> +#ifndef PREINIT_FUNCTION
> +#define PREINIT_FUNCTION __gmon_start__
> +#ifndef PREINIT_FUNCTION_WEAK
> +#define PREINIT_FUNCTION_WEAK 1
"# define" inside "#if..."
> + .p2align 2,,3
Why isn't just ".p2align 2" sufficient?
> + .section .init
You used full section details in crti.S. Either they're necessary or
they're not. Be consistent. (Actually, they're not strictly necessary,
but they're still worthwhile IMHO.)