Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Linker Error while building the Neutrino OS/Kernel Source : (3 Items)
   
Linker Error while building the Neutrino OS/Kernel Source  
Hi,
We modified the shutdown utility of kernel source, to display our own customized shutdown message.

 We followed the instruction given in the http://community.qnx.com/sf/wiki/do/viewPage/projects.core_os/wiki/
BuildTheOSSource

Steps followed to build,
1.	Created a staging directory for installed binaries and headers to go 
% cd /home/kernel
% mkdir stage 
2.	Configured the override makefile stub % cd /home/kernel 
% cat >qconf-override.mk 
USE_INSTALL_ROOT=1 
INSTALL_ROOT_nto=/home/kernel/stage 
^D 
3.	Set the override environment variable to point at the makefile stub 
% export QCONF_OVERRIDE=/home/kernel/qconf-override.mk 
4.	Installed all the Header Files in the local stage 
% cd /home/kernel/trunk 
% make OSLIST=nto CPULIST=x86 hinstall 
5.	Built the Neutrino OS binaries 
% cd /home/kernel/trunk 
% make OSLIST=nto CPULIST=x86 install


But the build stopped with some linker errors as mentioned below. 


//////////////////////////////////////////////////////////////////////////////////////
/home
/kernel/trunk/lib/ncurses/form/nto/x86/a -L /home/kernel/trunk/lib/ncurses/panel/nto/x86/a -L /h
ome/kernel/trunk/lib/ncurses/menu/nto/x86/a -L /home/kernel/trunk/lib/ncurses/ncurses++/nto/x86/
a -L /home/kernel/stage/x86/lib -L /home/kernel/stage/x86/usr/lib -L /usr/qnx641/target/qnx6/x86
/lib -L /usr/qnx641/target/qnx6/x86/usr/lib  -Wl,--rpath-link . -Wl,--rpath-link /home/kernel/tr
unk/lib/ncurses/ncurses/nto/x86/a -Wl,--rpath-link /home/kernel/trunk/lib/ncurses/form/nto/x86/a
 -Wl,--rpath-link /home/kernel/trunk/lib/ncurses/panel/nto/x86/a -Wl,--rpath-link /home/kernel/t
runk/lib/ncurses/menu/nto/x86/a -Wl,--rpath-link /home/kernel/trunk/lib/ncurses/ncurses++/nto/x8
6/a -Wl,--rpath-link /home/kernel/stage/x86/lib -Wl,--rpath-link /home/kernel/stage/x86/usr/lib
-Wl,--rpath-link /usr/qnx641/target/qnx6/x86/lib -Wl,--rpath-link /usr/qnx641/target/qnx6/x86/us
r/lib   -lncurses
/home/kernel/stage/x86/lib/libc.so: undefined reference to `SIGSTACK_CONTEXT'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `SIGSTACK_HANDLER'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EDI'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_ESI'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EDX'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `SIGSTACK_SIGNO'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `KER_SIGNAL_RETURN'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EBP'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `UCONTEXT_CPU'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_ECX'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EIP'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EBX'
/home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_ESP'
cc: /usr/qnx641/host/qnx6/x86/usr/bin/ntox86-ld error 1
make[7]: *** [/home/kernel/trunk/lib/ncurses/progs/clear/nto/x86/o/clear] Error 1
make[7]: Leaving directory `/home/kernel/trunk/lib/ncurses/progs/clear/nto/x86/o'
make[6]: *** [install] Error 2
make[6]: Leaving directory `/home/kernel/trunk/lib/ncurses/progs/clear/nto/x86'
make[5]: *** [install] Error 2
make[5]: Leaving directory `/home/kernel/trunk/lib/ncurses/progs/clear/nto'
make[4]: *** [install] Error 2
make[4]: Leaving directory `/home/kernel/trunk/lib/ncurses/progs/clear'
make[3]: *** [install] Error 2
make[3]: Leaving directory `/home/kernel/trunk/lib/ncurses/progs'
make[2]: *** [install] Error 2
make[2]: Leaving directory `/home/kernel/trunk/lib/ncurses'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/home/kernel/trunk/lib'
make: *** [install] Error 2

///////////////////////////////////////////////////////////////////////////////////////////////

Please suggest us to resolve this linker error.


Thanks in Advance, 
Logesh



Re: Linker Error while building the Neutrino OS/Kernel Source  
logeswaran T wrote:
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `SIGSTACK_CONTEXT'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `SIGSTACK_HANDLER'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EDI'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_ESI'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EDX'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `SIGSTACK_SIGNO'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `KER_SIGNAL_RETURN'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EBP'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `UCONTEXT_CPU'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_ECX'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EIP'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_EBX'
> /home/kernel/stage/x86/lib/libc.so: undefined reference to `REG_ESP'
> ///////////////////////////////////////////////////////////////////////////////////////////////
> 
> Please suggest us to resolve this linker error.

The libc you built and installed into your stage is no good. It appears 
that the assembly that must be preprocessed (.S) is being treated as raw 
assembly (.s).  Can you check that file extensions on one of these files 
(e.g. /home/kernel/trunk/lib/c/1/x86/sigstub.S)?

Or can you go into /home/kernel/trunk/lib/c/1/x86/so/ and rebuild the 
sigstub.o object and post the output from the build?

Regards,

Ryan Mansfield
Re: Linker Error while building the Neutrino OS/Kernel Source  
Hi Ryan Mansfield,

Thanks for your inputs. It is working fine.

Regards,
Logesh