Age | Commit message (Collapse) | Author |
|
Hello Erik,
to compile the new uClibc release for a SH3 we need some little
modifications:
First I fix the crt[in].S files, so we can use them for big endian and
little endian targets.
|
|
broke a couple of days ago. :-(
|
|
|
|
|
|
ln.patch:
* Define $(LN) as ln in Rules.mak.
* Change all occurrences of ln into $(LN).
* Change all constructs like (cd path && ln -sf foo/file file)
into $(LN) -sf foo/file path/file. The latter construct is
already used in a number of places so it should not be
an additional compatibility problem.
|
|
rm.patch:
* Define $(RM) as rm -f in Rules.mak and test/Rules.mak
(this is the same definition as gmake uses by default).
* Change all occurrences of rm and rm -f into $(RM).
|
|
Current uClibc contains only one fpu_control.h and it is i386 version.
This is a patch to use platform specific fpu_control.h. All new files
come from glibc 2.3.2. This patch is against 0.9.21 but also can be
applied to CVS as is.
|
|
|
|
on i386, at least, so seems like a good thing.
|
|
using r12. r12 is supposed to be preserved across C function calls. r0-r7
are trashable :-)
|
|
fix a couple of gcc 3.3 compiler warnings in gmon.c
|
|
for gmon profiling support for the SuperH target.
|
|
|
|
end of the buffer.
|
|
type of 'struct stat' and 'struct stat64' so they use consistant types.
This change is the result of a bug I found while trying to use GNU tar. The
problem was caused by our using kernel types within struct stat and trying to
directly compare these values with standard types. Trying an 'if (a < b)' when
'a' is an 'unsigned long' and 'b' is an 'int' leads to very different results
then when comparing entities of the same type (i.e. time_t values)....
Grumble. Nasty stuff, but I'm glad I got this out of the way now.
As a result of this fix, uClibc 0.9.17 will not be binary compatible with
earlier releases. I have always warned people this can and will happen.
-Erik
|
|
generate a crt0 and crt1 file. Most arches still need
to be updated to call __uClibc_start_main() rather than
__uClibc_main().
|
|
build a crt0.o and a crt1.o. crt1.o will support ctors and dtors if
such support is enabled. One more gratuitous toolchain support issue
is thereby removed...
-Erik
|
|
|
|
configurable, so people who do not need or want ctor/dtor support
can disable it and make their binaries a little bit smaller.
-Erik
|
|
I attached a patch, which revise the clone.S and vfork.S:
- Use PIC code.
- include new file syscall.S, so we can simply make a branch to
__syscall_error instead of a PLT/GOT call
- call errno_location to store the syscall error (for pthreads)
- avoid to use the 'shad' statement on SH2 targets
- call fork if vfork isn't available
- some cleanups and optimization
|
|
|
|
Hi Erik,
I added the FPU support for the setjmp/longjmp stuff.
This patch also moves the code from the bsd*.S files to the setjmp.S file, so
we can use simple branch instructions instead of referencing over the
.GOT/.PLT section. This makes the PIC code much easier, smaller and faster.
(The idea comes from the SPARC target)
Bye Stefan
|
|
|
|
-Erik
|
|
-Erik
|
|
|
|
been working on a new config system on and off for about 6 months
now, but I've never been fully satisfied. Well, I'm finally am
happy with the new config system, so here it is. This completely
removes the old uClibc configuration system, and replaces it with
an entirely new system based on LinuxKernelConf, from
http://www.xs4all.nl/~zippel/lc/
As it turns out, Linus has just merged LinuxKernelConf into Linux
2.5.45, so it looks like I made the right choice.
I have thus far updated only x86. I'll be updating the other
architectures shortly.
-Erik
|
|
|
|
-----------------------------------
In extra/Configs/Config.sh
I added the INCLUDE_PTHREADS statement and change the default values for
BUILD_UCLIBC_LDSO and HAVE_SHARED.
-----------------------------------
In extra/scripts/initfini.pl
My last patch removes two labels, which migth be used by the .size statements.
(Sorry, but I'm a perl beginner) I fixed it.
-----------------------------------
In libc/sysdeps/linux/common/initfini.c
I fixed two warnings "nested extern declaration of `i_am_not_a_leaf..
-----------------------------------
In libc/sysdeps/linux/sh/__init_brl.c brk.c sbrk.c
I fixed some compiler warnings which comes from a wrong
inclusion order.
-----------------------------------
|
|
how uClibc handles _init and _fini, allowing shared lib constructors and
destructors to initialize things in the correct sequence. Stefan ported the SH
architecture. I then ported x86, arm, and mips. x86 and arm are working fine,
but I don't think I quite got things correct for mips.
|
|
|
|
and envp was a very small number and not an address. I think this fixes
most of the SH platform.
|
|
are still seg-faulting.
|
|
Definitions taken from 2.4 kernel sources for each of the platforms.
|
|
guard names used by the kernel's asm/posix_types.h to eliminate
gratuitous conflicts and let our file win over the very-likely-
to-be-broken kernel header file.
-Erik
|
|
__USE_FILE_OFFSET64 handling.
-Erik
|
|
header, which is not directly usable for many architectures.
-Erik
|
|
specific bits/kernel_stat.h file.
-Erik
|
|
method for building crti.o and crtn.o
|
|
using
a 3.0.4 version of the sh-linux-gcc compiler.
|
|
|
|
Edie C. Dost has some concerns about the perl script used to general crti.o and
crtn.o and added their own versions. These versions will win since they are
built last,
|
|
Prepare to kill the UNIFIED_SYSCALL option and instead have it be
a per arch thing that is either enabled or not for that arch.
-Erik
|
|
(undefined reference to `main') when the .o file containing main was contained
in an static library(a '.a' ar archive). It turns out that due to its single
pass nature, GNU ld was failing to pull it into the build. This sticks a dummy
reference to main() into crt0.o, so that when an application is linked with the
main() function in a static library, we can be sure that main() actually gets
linked in.
-Erik
|
|
|
|
can live with much better the what glibc does.
-Erik
|
|
|
|
-Erik
|
|
for SH, and fix vfork
|
|
and to better support each arch. This is a really big patch...
-Erik
|