I want to compile udpcast in fedora9(gcc version 4.3), my process as follows:
1) download and complile ncurses-5.7 2) sudo make install /* Install ncurses library */ 3) tar xfjv busybox-1.13.2.tar.bz2 4) cd busybox-1.13.2 5) tar xfzv ../udpcast-20081213.tar.gz 6) (cd udpcast-20081213 && ./configure) 7) tar xfzv ../udpbusybox-20081130.tar.gz 8) ../addBbApp.pl udpcdialog udpcast-20081213 9) make *defconfig* /* Create the maximum "sane" configuration. */ 10) vi Makefile, modify line to LDLIBS := pthread ncurses 11) make
But i got following error message: udpcdialog/lib.a(udpc_dialog.o):(__libc_atexit+0x0): undefined reference to '_IO_cleanup' collect2: ld returned 1 exit status make: *** [busybox_unstripped] Error 1
I think that the problem is with shared libc library. nm result as follows: $ nm /usr/lib/libc.a | grep _IO_cleanup
U _IO_cleanup 00001330 T _IO_cleanup 00000000 r __elf_set__libc_atexit_element__IO_cleanup__ U _IO_cleanup
I need help !!!
wanyozxy
xy zou wrote:
I want to compile udpcast in fedora9(gcc version 4.3), my process as follows:
Sorry, I only noticed this mail now, for some reason it went into my junk folder ....
- download and complile ncurses-5.7
- sudo make install /* Install ncurses library */
- tar xfjv busybox-1.13.2.tar.bz2
- cd busybox-1.13.2
- tar xfzv ../udpcast-20081213.tar.gz
- (cd udpcast-20081213 && ./configure)
- tar xfzv ../udpbusybox-20081130.tar.gz
- ../addBbApp.pl udpcdialog udpcast-20081213
- make *defconfig* /* Create the maximum "sane" configuration. */
^^^^^^^^^^^^^^^^^ ... and I think here lies the problem.
The busybox config shipped with udpcast is carefully tuned for usage with udpcast. There are to configs.
The "mini" config is intended for cases where space is premium. It makes a busybox with the least number of features for udpcast to work, but in so little space that it fits on a floppy.
The "maxi" config is intended for cases where space is not an issue. It makes a busybox with a number of goodies, in addition to those strictly needed for udpcast.
If you need some particular feature, I'd suggest starting with the "maxi" config, and if your feature is still missing, just add what you need.
- vi Makefile, modify line to LDLIBS := pthread ncurses
- make
But i got following error message: udpcdialog/lib.a(udpc_dialog.o):(__libc_atexit+0x0): undefined reference to '_IO_cleanup' collect2: ld returned 1 exit status make: *** [busybox_unstripped] Error 1
I think that the problem is with shared libc library.
^^^^^^ Exactly. In normal circumstances, with udpcast, you should compile busybox _statically_
But on the other hand, the issue that IO_cleanup is meant to fix only occurs with static compilation, so with dynamic compilation, you can indeed safely remove it.
You might still run into other issue though, due to the changed busybox config.
nm result as follows: $ nm /usr/lib/libc.a | grep _IO_cleanup
U _IO_cleanup
00001330 T _IO_cleanup 00000000 r __elf_set__libc_atexit_element__IO_cleanup__ U _IO_cleanup
I need help !!!
wanyozxy
Regards,
Alain