Thread: [libposix-development] Initial source code release
Status: Pre-Alpha
Brought to you by:
hdante
From: Henrique A. <hd...@gm...> - 2009-05-31 21:46:36
|
Hello ! The initial code for libposix is available in the source repository. For downloading, use: git clone ssh://hd...@li.../gitroot/libposix The announcement message is available at: https://sourceforge.net/forum/forum.php?forum_id=960451 Everybody should test it in their favorite linux distro. If you don't have a linux version yet, Ubuntu is the main development enviroment that we are going to support. Other good options are the top ranked distros in distrowatch: http://distrowatch.com/ Report bugs urgently. You may use Tracker for this: https://sourceforge.net/tracker/?group_id=261625 There are a lot of tasks that must be done to improve that simple implementation. It's time for us to assign some roles for each person in the project. -- Henrique Dante de Almeida hd...@gm... |
From: Henrique A. <hd...@gm...> - 2009-05-31 21:47:43
|
2009/5/31 Henrique Almeida <hd...@gm...>: > Hello ! > > The initial code for libposix is available in the source repository. > For downloading, use: > > git clone ssh://hd...@li.../gitroot/libposix Obviously the above line is incorrect. Use: git clone ssh://<yourid>@libposix.git.sourceforge.net/gitroot/libposix > > The announcement message is available at: > > https://sourceforge.net/forum/forum.php?forum_id=960451 > > Everybody should test it in their favorite linux distro. If you don't > have a linux version yet, Ubuntu is the main development enviroment > that we are going to support. Other good options are the top ranked > distros in distrowatch: > > http://distrowatch.com/ > > Report bugs urgently. You may use Tracker for this: > > https://sourceforge.net/tracker/?group_id=261625 > > There are a lot of tasks that must be done to improve that simple > implementation. It's time for us to assign some roles for each person > in the project. > > -- > Henrique Dante de Almeida > hd...@gm... > -- Henrique Dante de Almeida hd...@gm... |
From: Andreas K. <akr...@go...> - 2009-06-01 06:54:13
|
Hi, On Sun, May 31, 2009 at 11:46 PM, Henrique Almeida <hd...@gm...> wrote: > Report bugs urgently. You may use Tracker for this: > > https://sourceforge.net/tracker/?group_id=261625 > How are patches supposed to be submitted? I have two patches ready, one adding a Makefile that allows parallelized builds on multi-core CPUs and adds some multi-platform building support (i.e. it separates i386 binaries from e.g. x86_64 binaries), and the other one adding my previously submitted string functions attributed with the BSD license and reformatted to match the existing source formatting. So far, you can find the patches in mbox format here: http://synflood.at/tmp/libposix/makefile_stringfuncs.mbox Regards, Andreas |
From: Henrique A. <hd...@gm...> - 2009-06-01 16:48:31
|
2009/6/1 Andreas Krennmair <akr...@go...>: > Hi, Hello, Andreas, > On Sun, May 31, 2009 at 11:46 PM, Henrique Almeida <hd...@gm...> wrote: >> >> Report bugs urgently. You may use Tracker for this: >> >> https://sourceforge.net/tracker/?group_id=261625 > > How are patches supposed to be submitted? I have two patches ready, one Either join the project and get write access to the repository, or just paste them into the mailing list. ;-) > adding a Makefile that allows parallelized builds on multi-core CPUs and > adds some multi-platform building support (i.e. it separates i386 binaries > from e.g. x86_64 binaries), and the other one adding my previously submitted > string functions attributed with the BSD license and reformatted to match > the existing source formatting. So far, you can find the patches in mbox > format here: > http://synflood.at/tmp/libposix/makefile_stringfuncs.mbox Thanks for the patches, I've uploaded them to the repository. Notice, however, that 1) runtime support (init.o and others) is not linked into libposix, only in the final application (maybe we should separate the runtime source ?) 2) size_t is unsigned, so the decrement in the loops are invoking undefined behavior (maybe a simpler, positive loop will do, the compiler will optimize that anyway). The next tasks will be the inclusion of unit testing and porting hello world to more platforms. > > Regards, > Andreas > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. > Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp as they present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com > _______________________________________________ > Libposix-development mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libposix-development > > -- Henrique Dante de Almeida hd...@gm... |
From: Andreas K. <akr...@go...> - 2009-06-01 20:10:35
|
Hi, On Mon, Jun 1, 2009 at 6:48 PM, Henrique Almeida <hd...@gm...> wrote: > > How are patches supposed to be submitted? I have two patches ready, one > > Either join the project and get write access to the repository, or > just paste them into the mailing list. ;-) OK, I'll stick with posting them here so far. It's always good to have an explicit review process. > Thanks for the patches, I've uploaded them to the repository. Notice, > however, that 1) runtime support (init.o and others) is not linked > into libposix, only in the final application (maybe we should separate > the runtime source Alright. > ?) 2) size_t is unsigned, so the decrement in the > loops are invoking undefined behavior (maybe a simpler, positive loop > will do, the compiler will optimize that anyway). I'm aware of that, and the code is safe: expression such as while (size--) { are totally fine: in case size is 0, the expression size-- returns 0, which makes the while-loop terminate, and _then_ size is decremented. The value of size is undefined afterwards, but it isn't used anymore afterwards, anyway, in none of my submitted routines, so I see no problem with the code. > The next tasks will be the inclusion of unit testing and porting > hello world to more platforms. > I've been playing around a bit with an x86_64 port, but since I'm not an expert on assembler (especially x86_64), I didn't have much luck getting link my attempt of it. My last guess was that I'd need to have position independent code, but then I accidently typed in "git stash drop" instead of "git stash pop" and removed my work on that topic. :-/ Regards, Andreas |
From: Henrique A. <hd...@gm...> - 2009-06-02 03:27:53
|
2009/6/1 Andreas Krennmair <akr...@go...>: > Hi, > On Mon, Jun 1, 2009 at 6:48 PM, Henrique Almeida <hd...@gm...> wrote: >> >> > How are patches supposed to be submitted? I have two patches ready, one >> >> Either join the project and get write access to the repository, or >> just paste them into the mailing list. ;-) > > OK, I'll stick with posting them here so far. It's always good to have an > explicit review process. > >> >> Thanks for the patches, I've uploaded them to the repository. Notice, >> however, that 1) runtime support (init.o and others) is not linked >> into libposix, only in the final application (maybe we should separate >> the runtime source > > Alright. > >> >> ?) 2) size_t is unsigned, so the decrement in the >> loops are invoking undefined behavior (maybe a simpler, positive loop >> will do, the compiler will optimize that anyway). > > I'm aware of that, and the code is safe: expression such as > while (size--) { > are totally fine: in case size is 0, the expression size-- returns 0, which > makes the while-loop terminate, and _then_ size is decremented. The value of > size is undefined afterwards, but it isn't used anymore afterwards, anyway, > in none of my submitted routines, so I see no problem with the code. Undefined behavior is more general than that. A processor may, for example, trap on integer overflow (or a compiler can insert code to do this). Anyway, I've just found out that unsigned integer arithmetic has DEFINED modular behavior. My bad, sorry. I think a remark suffices: keep the code as safe as possible. > >> >> The next tasks will be the inclusion of unit testing and porting >> hello world to more platforms. > > I've been playing around a bit with an x86_64 port, but since I'm not an > expert on assembler (especially x86_64), I didn't have much luck getting > link my attempt of it. My last guess was that I'd need to have position > independent code, but then I accidently typed in "git stash drop" instead of > "git stash pop" and removed my work on that topic. :-/ If we're lucky, x86_64 uses "syscall" directly instead of vsyscall. We must find out how system calls work in x86_64 (hint: post here the output of "ldd /bin/ls" from a x86_64 distribution). If necessary, examples on how to deal with PIC code (and more) are on the ABI document: http://www.x86-64.org/documentation/abi.pdf The assembly code for x86 (_start.asm and syscalls.asm) is not suitable for x86_64. > > Regards, > Andreas > > ------------------------------------------------------------------------------ > OpenSolaris 2009.06 is a cutting edge operating system for enterprises > looking to deploy the next generation of Solaris that includes the latest > innovations from Sun and the OpenSource community. Download a copy and > enjoy capabilities such as Networking, Storage and Virtualization. > Go to: http://p.sf.net/sfu/opensolaris-get > _______________________________________________ > Libposix-development mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libposix-development > > -- Henrique Dante de Almeida hd...@gm... |
From: Tordek <ke...@gm...> - 2009-06-02 03:59:24
Attachments:
smime.p7s
|
Henrique Almeida wrote: > 2009/6/1 Andreas Krennmair <akr...@go...>: >> I've been playing around a bit with an x86_64 port, but since I'm not an >> expert on assembler (especially x86_64), I didn't have much luck getting >> link my attempt of it. My last guess was that I'd need to have position >> independent code, but then I accidently typed in "git stash drop" instead of >> "git stash pop" and removed my work on that topic. :-/ > Same problem here; tho I know even _less_ assembly. :( > If we're lucky, x86_64 uses "syscall" directly instead of vsyscall. > We must find out how system calls work in x86_64 (hint: post here the > output of "ldd /bin/ls" from a x86_64 distribution). Okay: :~$ ldd /bin/ls linux-vdso.so.1 => (0x00007fff389fe000) librt.so.1 => /lib/librt.so.1 (0x00007f1230474000) libselinux.so.1 => /lib/libselinux.so.1 (0x00007f1230258000) libacl.so.1 => /lib/libacl.so.1 (0x00007f1230051000) libc.so.6 => /lib/libc.so.6 (0x00007f122fcfe000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007f122fae3000) /lib64/ld-linux-x86-64.so.2 (0x00007f123067c000) libdl.so.2 => /lib/libdl.so.2 (0x00007f122f8df000) libattr.so.1 => /lib/libattr.so.1 (0x00007f122f6db000) > http://www.x86-64.org/documentation/abi.pdf > > The assembly code for x86 (_start.asm and syscalls.asm) is not > suitable for x86_64. Thought as much; I was actually wondering if it could compile to x86 and run in emulated mode or something. -- Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno. http://tordek.com.ar :: http://twitter.com/tordek http://www.arcanopedia.com.ar - Juegos de Rol en Argentina |
From: Tordek <ke...@gm...> - 2009-06-01 07:36:37
Attachments:
smime.p7s
|
Andreas Krennmair wrote: > adds some multi-platform building support (i.e. it separates i386 > binaries from e.g. x86_64 binaries), and the other one adding my I've tried your makefile, but I'm still unable to compile: ld -o output-x86_64/libposix.so -shared output-x86_64/runtime.o output-x86_64/stdio.o output-x86_64/string.o output-x86_64/init.o output-x86_64/syscalls.o output-x86_64/_start.asm.o output-x86_64/syscalls.asm.o ld: i386 architecture of input file `output-x86_64/_start.asm.o' is incompatible with i386:x86-64 output ld: i386 architecture of input file `output-x86_64/syscalls.asm.o' is incompatible with i386:x86-64 output Changing nasm's options to -f elf64 gives the previous error again: ld: output-x86_64/syscalls.asm.o: relocation R_X86_64_32 against `kernel_vsyscall' can not be used when making a shared object; recompile with -fPIC output-x86_64/syscalls.asm.o: could not read symbols: Bad value -- Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno. http://tordek.com.ar :: http://twitter.com/tordek http://www.arcanopedia.com.ar - Juegos de Rol en Argentina |
From: Henrique A. <hd...@gm...> - 2009-06-01 16:51:38
|
2009/6/1 Tordek <ke...@gm...>: > Andreas Krennmair wrote: >> adds some multi-platform building support (i.e. it separates i386 >> binaries from e.g. x86_64 binaries), and the other one adding my > > I've tried your makefile, but I'm still unable to compile: We can't compile to x86-64 yet, "system/linux" only contains x86 assembly code, so we need to port that code. That's the right direction, we need to port "Hello world" so that we setup our build system for multiple target support. > > ld -o output-x86_64/libposix.so -shared output-x86_64/runtime.o > output-x86_64/stdio.o output-x86_64/string.o output-x86_64/init.o > output-x86_64/syscalls.o output-x86_64/_start.asm.o > output-x86_64/syscalls.asm.o > ld: i386 architecture of input file `output-x86_64/_start.asm.o' is > incompatible with i386:x86-64 output > ld: i386 architecture of input file `output-x86_64/syscalls.asm.o' > is incompatible with i386:x86-64 output > > Changing nasm's options to -f elf64 gives the previous error again: > > ld: output-x86_64/syscalls.asm.o: relocation R_X86_64_32 against > `kernel_vsyscall' can not be used when making a shared object; > recompile with -fPIC > output-x86_64/syscalls.asm.o: could not read symbols: Bad value > > -- > Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno. > http://tordek.com.ar :: http://twitter.com/tordek > http://www.arcanopedia.com.ar - Juegos de Rol en Argentina > > > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp as they present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com > _______________________________________________ > Libposix-development mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libposix-development > > -- Henrique Dante de Almeida hd...@gm... |