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

Reply via email to