On 1/11/2011 11:54 AM, René Rebe wrote:
Hello again,
Committed revision 38448.
Don't expect those [dietlibc-linked] binaries to run [on mips64] just yet,
still need to setup some hardware or emulator to fixup the startup and
miscellaneous assembly glue, ...
Yes, I understand. at this point am just looking for it to keep building past udev. (I end
up replacing most of the dietlibc stuff with overlays in my application anyway)
Build is going further but still more udev/dietlibc work to do.
I next, was getting:
libudev/libudev-queue.c: In function 'udev_get_kernel_seqnum':
libudev/libudev-queue.c:134:31: error: 'O_CLOEXEC' undeclared (first use in
this function)
libudev/libudev-queue.c:134:31: note: each undeclared identifier is reported only once for
each function it appears in
I could see where O_CLOEXEC was missing from the mips portion of dietlib's fcntl.h so I
have attached a patch to add it in. The value is in hex, to match the rest of the mips
constants, The same thing will be needed for _sparc_ and _power_pc_, but I am not 100%
sure if the same value will be correct for those architectures. there is definitely a
conflict for the _alpha_ and _hppa_ architectures, they already are using that value for
an other constants.
once all the correct values are known, you may want to put them all into the
inotefy_init1.patch, which first added the O_CLOEXEC into the _i386_ section.
I ran the build again and got the next layer of the onion:
libudev/.libs/libudev-private.a(libudev-util-private.o): In function
`util_run_program':
libudev-util-private.c:(.text+0x1248): undefined reference to `waitpid'
libudev-util-private.c:(.text+0x1254): undefined reference to `waitpid'
/opt/T2/t2-trunk-pure/build/Mips-Octeon-9.0-trunk-generic-mips64-EB-octeon-cross-linux/usr/dietlibc/lib-mips64/libc.a(logging.o):
In function `__libc_vsyslog':
logging.c:(.text+0x490): undefined reference to `time'
logging.c:(.text+0x788): undefined reference to `send'
/opt/T2/t2-trunk-pure/build/Mips-Octeon-9.0-trunk-generic-mips64-EB-octeon-cross-linux/usr/dietlibc/lib-mips64/libc.a(tzfile.o):
In function `tzset':
tzfile.c:(.text+0x3c8): undefined reference to `time'
collect2: ld returned 1 exit status
make[2]: *** [extras/firmware/firmware] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I will look into that tomorrow, if you don't beat me to it.
Jan
René
On 11.01.2011, at 12:23, René Rebe wrote:
Well, we need ppoll and pread to compile the same packages with dietlibc as on
other CPUs, like udev.
Guess there is just some syscall number missing or named differently.
I will try to take a look soon.
René
On 11.01.2011, at 02:31, Jan Rovins wrote:
On mips64, dietlibc is building a little further, but still failing.
!> syscalls.s/__ppoll.S: Assembler messages:
!> syscalls.s/__ppoll.S:3: Warning: la used to load 64-bit address
!> mips64-t2-linux-gnu-cc -I. -isystem include -pipe -nostdinc -Os -G 0
-fstrict-aliasing -fno-pic -mno-abicalls -W ..
!> mips64/__pread.S: Assembler messages:
!> mips64/__pread.S:3: Error: absolute expression required `li'
!> mips64/__pread.S:3: Warning: la used to load 64-bit address
!> Due to previous errors, no 1-dietlibc.log file!
!> (Try enabling xtrace in the config to track an error inside the build
system.)
unistd.h has: #define pread pread64
does that mean we have to get rid of mips64/__pread.S& mips64/pread.c?
Jan
On 1/8/2011 12:11 PM, René Rebe wrote:
Hi,
On 08.01.2011, at 17:20, I wrote:
Hi,
those non-x86 architectures should only require an syscalls.h update like the
following:
http://svn.exactcode.de/t2/trunk/package/base/dietlibc/syscalls.h-update.patch
Where the numbers can be determined by looking at the linux kernel headers.
I may look at that in the next minutes.
Committed r38431.
René
Note that dietlibc was only "hacked" to _compile_ on mips64, the (32bit)
assembly code certainly did not yet work at runtime before.
Regards,
René
On 08.01.2011, at 02:23, Jan Rovins wrote:
Hi Rene,
The new udev/dietlib is also broken on the mips64 build (as you predicted)
Here is what the errors look like:
mips64-t2-linux-gnu-cc -I. -isystem include -pipe -nostdinc -Os -G 0
-fstrict-aliasing -fno-pic -mno-abicalls -W -Wall -Wextra -Wchar-subscripts
-Wmissing-prototypes -Wmissing-declarations -Wno-switch -Wno-unused
-Wredundant-decls -c syscalls.s/fstatat.S -o bin-mips64/fstatat.o
syscalls.s/fstatat.S: Assembler messages:
syscalls.s/fstatat.S:6: Error: absolute expression required `li'
syscalls.s/fstatat.S:6: Warning: la used to load 64-bit address
make: *** [bin-mips64/fstatat.o] Error 1
Due to previous errors, no 1-dietlibc.log file!
I tried rolling udev& dietlibc back to the previous versions, but something
is broken in the way I was doing that, so nothing is building right now in mips
land. I will tru a more through rollback on Monday.
On the brighter side of things, I have found that the GCC 4.5.1 is now building
successfully for Mips64, that internal compiler error is no longer happening,
perhaps it was the update to the newer glibc or binutils that fixed it.
Jan
On 1/7/2011 3:11 AM, Gerardo Di Iorio wrote:
HI rene,
i have test to build udev 165 on x86 64bit system, but i have this error
home/scratch/t2/build/udevcross-9.0-trunk-generic-x86-64-k8-cross-/usr/dietlibc
/include/byteswap.h:4:2: warning: #warning "byteswap.h is an unportable GNU exte
nsion! Don't use!"
extras/path_id/path_id.c: In function 'handle_scsi_default':
extras/path_id/path_id.c:225:11: error: 'struct dirent' has no member named 'd_t
ype'
extras/path_id/path_id.c:225:37: error: 'struct dirent' has no member named 'd_t
ype'
make[2]: *** [extras/path_id/path_id.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Due to previous errors, no 1-udev.log file!
(Try enabling xtrace in the config to track an error inside the build system.)
--- BUILD ERROR ---
Creating file list and doing final adaptions ...
regards
gerardo di iorio
2011/1/6 René Rebe<[email protected]>:
Welcome to 2011!
People kept bugging me to update our aging udev version. However, since nearly
every udev update in the last years started to utilize yet another new Linux
syscall not yet implemented in dietlibc (for our initrd startup user-space) I
was pretty reluctant to touch it since then.
However, 2011 came and I finally went thru (the mess) to patch all those
bleeding edge pieces into dietlibc:
http://www.t2-project.org/packages/dietlibc.html
http://svn.exactcode.de/ChangeLog-t2
Some syscall numbers still need to be added to non-x86 files in dietlibc (arm,
mips, powerpc, sparc, etc.) and everything tested carefully, ...
I would also like to point out, that some donations would be very welcome to
support the massive effort that is T2:
http://www.t2-project.org/download/ (and every other page on the very top)
Happy New Year 2011!
René Rebe
--
René Rebe, ExactCODE GmbH, Jaegerstr. 67, DE-10117 Berlin
http://exactcode.com | http://t2-project.org | http://rene.rebe.de
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2
--
René Rebe, ExactCODE GmbH, Jaegerstr. 67, DE-10117 Berlin
http://exactcode.com | http://t2-project.org | http://rene.rebe.de
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2
--
René Rebe, ExactCODE GmbH, Jaegerstr. 67, DE-10117 Berlin
http://exactcode.com | http://t2-project.org | http://rene.rebe.de
diff -ur dietlibc-0.32/include/fcntl.h dietlibc-0.32.fix/include/fcntl.h
--- dietlibc-0.32/include/fcntl.h 2011-01-05 18:10:23.000000000 -0500
+++ dietlibc-0.32.fix/include/fcntl.h 2011-01-11 17:34:12.000000000 -0500
@@ -187,6 +187,7 @@
#define O_DIRECTORY 0x10000 /* must be a directory */
#define O_NOFOLLOW 0x20000 /* don't follow links */
#define O_NOATIME 0x40000
+#define O_CLOEXEC 0x80000 /* set close_on_exec */
#define O_NDELAY O_NONBLOCK
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2