<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoPlainText"><span style="font-family:"Courier New"">Thu Dec 11 01:46:41 EST 2014<br>
<br>
Hello.<br>
<br>
I am working on porting bird 1.4.5 to QNX SP1 (QNX OS service pack 1).<br>
QNX is actually close to BSD and there have been very few changes to the code.<br>
<br>
I have bird built but I get a core dump on initialization.<br>
I was hoping that someone could give me some specific ideas on<br>
exactly where to look while debugging. I have many years of writing and debugging<br>
Linux and Solaris drivers and networking code, but I am not yet familiar<br>
with the bird internal data structures.<br>
<br>
I tried building with and without pthreads.<br>
I get a core dump both ways, in different spots,<br>
both when calling WALK_LIST() with a list.<br>
<br>
// with pthreads<br>
#0  0x00111460 in if_notify_change (c=1, i=0x187050) at ../../nest/iface.c:218<br>
218       WALK_LIST(p, active_proto_list)<br>
<br>
// without pthreads<br>
if_start_update () at ../../nest/iface.c:338<br>
338       WALK_LIST(i, iface_list)<br>
<br>
<br>
I also turned off the '#define POISON' in lib/slab.c,<br>
and on a different run did a bzero() instead of a memset(POISON).<br>
Neither changed the results.<br>
<br>
Attached find my bird.conf<br>
<br>
Any hints would be appreciated.<br>
<o:p> </o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">PS <o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">Something else weird. I get an error when bird starts up and parses bird.conf.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">'protocol device' rejects 'interface "en0";', even though en0 is the correct name<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">of my ethernet interface, and ifconfig shows it exists and is up with an ipaddr.<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:"Courier New"">protocol device {<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">   interface "en0";<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">% ifconfig<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">        inet 127.0.0.1 netmask 0xff000000<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">wip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">        address: 01<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">en0: flags=80008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,SHIM> mtu 1500<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">        address: 00:80:0f:9e:08:74<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">        media: Ethernet 100baseTX full-duplex<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">        status: active<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255<o:p></o:p></span></p>
<p class="MsoPlainText"><span style="font-family:"Courier New"">Thanks,<br>
Ed Pendzik<br>
ependzik@harris.com<br>
<br>
//------------------------------------------------------------<br>
<br>
btop="/fs"<br>
<br>
confopts="\<br>
--sysconfdir=$btop \<br>
--localstatedir=$btop \<br>
--prefix=$btop \<br>
CC=$HOME/qccbird \<br>
CFLAGS=-V4.4.2,gcc_ntoarmle \<br>
--disable-pthreads \<br>
--build=i686-pc-linux-gnu \<br>
--host=arm-unknown-nto-qnx6.5.0 \<br>
--with-sysconfig=qnx \<br>
--with-protocols=ospf,pipe,static,bfd,rip \<br>
--enable-debug \<br>
--disable-client \<br>
"<br>
<br>
./configure $confopts<br>
<br>
//------------------------------------------------------------<br>
<br>
// WITH PTHREADS (--enable-pthreads)<br>
<br>
// console output<br>
<br>
117.localhost_root 2014-12-11 06:10:06 <TRACE> direct1: Initializing<br>
2014-12-11 06:10:06 <TRACE> kernel1: Initializing<br>
2014-12-11 06:10:06 <TRACE> device1: Initializing<br>
2014-12-11 06:10:06 <TRACE> ospf1: Initializing<br>
2014-12-11 06:10:06 <TRACE> device1: Starting<br>
2014-12-11 06:10:06 <TRACE> device1: Scanning interfaces<br>
@@@ if_notify_change: this is debug()<br>
@@@ if_notify_change: this is DBG()<br>
Interface change notification (1) for lo0<br>
IF1: lo0 UP LINK-UP MA LOOP IGN MTU=33192<br>
        127.0.0.1, net 127.0.0.0/8  bc 0.0.0.0 -> 0.0.0.0 DOWN<br>
unlinking old /fs/coredumps/bird.core<br>
dumping to /fs/coredumps/bird.core<br>
thread 1.flags is 0x1<br>
thread 1 is was SIGNALLED<br>
thread 1.why is 0x1<br>
ldd mapinfos:<br>
Thread 1's SP is at 0xff7d4<br>
Adjusting 24576 bytes @ 0xfa000->0x100000 to 4096 bytes @ 0xff000->0x100000<br>
thread 1 is current thread!<br>
blanking 24576 bytes of stack memory at 0xff000<br>
max=0x6000, min = 0x5000 (0xff000->0x100000)<br>
dumping 483328 bytes of memory at 0x100000<br>
dumping 8192 bytes of memory at 0x176000<br>
dumping 4096 bytes of memory at 0x178000<br>
dumping 135168 bytes of memory at 0x179000<br>
dumping 471040 bytes of memory at 0x1000000<br>
dumping 16384 bytes of memory at 0x1073000<br>
dumping 4096 bytes of memory at 0x1077000<br>
dumping 172032 bytes of memory at 0x78000000<br>
dumping 24576 bytes of memory at 0x7802a000<br>
<br>
<br>
<br>
<br>
<br>
ntoarm-gdb bird bird.core<br>
GNU gdb 6.8 qnx-nto (rev. 506)<br>
Copyright (C) 2008 Free Software Foundation, Inc.<br>
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html><br>
This is free software: you are free to change and redistribute it.<br>
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"<br>
and "show warranty" for details.<br>
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-unknown-nto-qnx6.5.0"...<br>
<br>
Reading symbols from /home2/opt/qnx650sp1/target/qnx6/armle/lib/libsocket.so.3...done.<br>
Loaded symbols for /home2/opt/qnx650sp1/target/qnx6/armle/lib/libsocket.so.3<br>
Reading symbols from /home2/opt/qnx650sp1/target/qnx6/armle/lib/libc.so.3...done.<br>
Loaded symbols for /home2/opt/qnx650sp1/target/qnx6/armle/lib/libc.so.3<br>
Program terminated with signal 10, Bus error.<br>
[New pid 1708126 tid 1]<br>
#0  0x00111460 in if_notify_change (c=1, i=0x187050) at ../../nest/iface.c:218<br>
218       WALK_LIST(p, active_proto_list)<br>
(gdb) whete<br>
Undefined command: "whete".  Try "help".<br>
(gdb) where<br>
#0  0x00111460 in if_notify_change (c=1, i=0x187050) at ../../nest/iface.c:218<br>
#1  0x00111624 in if_change_flags (i=0x187050, flags=1073742306) at ../../nest/iface.c:254<br>
#2  0x00111988 in if_end_partial_update (i=0x187050) at ../../nest/iface.c:350<br>
#3  0x00111a34 in if_end_update () at ../../nest/iface.c:368<br>
#4  0x0015a184 in kif_do_scan (p=0x18a528) at krt-sock.c:894<br>
#5  0x0015ab0c in kif_scan (t=0x1860d0) at krt.c:98<br>
#6  0x0015af64 in kif_start (P=0x18a528) at krt.c:191<br>
#7  0x0010e22c in proto_rethink_goal (p=0x18a528) at ../../nest/proto.c:632<br>
#8  0x0010dff0 in protos_commit (new=0x18f9a8, old=0x0, force_reconfig=0, type=1) at ../../nest/proto.c:580<br>
#9  0x00151df0 in config_do_commit (c=0x18f9a8, type=1) at conf.c:255<br>
#10 0x00152030 in config_commit (c=0x18f9a8, type=1, timeout=0) at conf.c:348<br>
#11 0x0015f788 in main (argc=2, argv=0xff944) at main.c:822<br>
(gdb) <br>
<br>
//------------------------------------------------------------<br>
<br>
// WITHOUT PTHREADS (--disable-pthreads)<br>
<br>
// console output<br>
<br>
128.localhost_root 2014-12-11 06:15:41 <TRACE> direct1: Initializing<br>
2014-12-11 06:15:41 <TRACE> kernel1: Initializing<br>
2014-12-11 06:15:41 <TRACE> device1: Initializing<br>
2014-12-11 06:15:41 <TRACE> ospf1: Initializing<br>
2014-12-11 06:15:41 <TRACE> device1: Starting<br>
2014-12-11 06:15:41 <TRACE> device1: Scanning interfaces<br>
dumping to /fs/coredumps/bird.core<br>
thread 1.flags is 0x1<br>
thread 1 is was SIGNALLED<br>
thread 1.why is 0x1<br>
ldd mapinfos:<br>
Thread 1's SP is at 0xff828<br>
Adjusting 24576 bytes @ 0xfa000->0x100000 to 4096 bytes @ 0xff000->0x100000<br>
thread 1 is current thread!<br>
blanking 24576 bytes of stack memory at 0xff000<br>
max=0x6000, min = 0x5000 (0xff000->0x100000)<br>
dumping 483328 bytes of memory at 0x100000<br>
dumping 8192 bytes of memory at 0x176000<br>
dumping 4096 bytes of memory at 0x178000<br>
dumping 98304 bytes of memory at 0x179000<br>
dumping 471040 bytes of memory at 0x1000000<br>
dumping 16384 bytes of memory at 0x1073000<br>
dumping 4096 bytes of memory at 0x1077000<br>
dumping 172032 bytes of memory at 0x78000000<br>
dumping 24576 bytes of memory at 0x7802a000<br>
<br>
<br>
ntoarm-gdb bird bird.core<br>
GNU gdb 6.8 qnx-nto (rev. 506)<br>
Copyright (C) 2008 Free Software Foundation, Inc.<br>
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html><br>
This is free software: you are free to change and redistribute it.<br>
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"<br>
and "show warranty" for details.<br>
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-unknown-nto-qnx6.5.0"...<br>
<br>
warning: Host file /home2/opt/qnx650sp1/target/qnx6/armle/lib/libsocket.so.3 does not match target file.<br>
<br>
warning: Host file /home2/opt/qnx650sp1/target/qnx6/armle/lib/libc.so.3 does not match target file.<br>
Reading symbols from /home2/opt/qnx650sp1/target/qnx6/armle/lib/libsocket.so.3...done.<br>
Loaded symbols for /home2/opt/qnx650sp1/target/qnx6/armle/lib/libsocket.so.3<br>
Reading symbols from /home2/opt/qnx650sp1/target/qnx6/armle/lib/libc.so.3...done.<br>
Loaded symbols for /home2/opt/qnx650sp1/target/qnx6/armle/lib/libc.so.3<br>
Program terminated with signal 11, Segmentation fault.<br>
[New pid 2158686 tid 1]<br>
#0  0x001118c0 in if_start_update () at ../../nest/iface.c:338<br>
338       WALK_LIST(i, iface_list)<br>
(gdb) bt<br>
#0  0x001118c0 in if_start_update () at ../../nest/iface.c:338<br>
#1  0x0015a0fc in kif_do_scan (p=0x18a528) at krt-sock.c:892<br>
#2  0x0015aa9c in kif_scan (t=0x1860d0) at krt.c:98<br>
#3  0x0015aef4 in kif_start (P=0x18a528) at krt.c:191<br>
#4  0x0010e1bc in proto_rethink_goal (p=0x18a528) at ../../nest/proto.c:632<br>
#5  0x0010df80 in protos_commit (new=0x18f9a8, old=0x0, force_reconfig=0, type=1) at ../../nest/proto.c:580<br>
#6  0x00151d80 in config_do_commit (c=0x18f9a8, type=1) at conf.c:255<br>
#7  0x00151fc0 in config_commit (c=0x18f9a8, type=1, timeout=0) at conf.c:348<br>
#8  0x0015f6cc in main (argc=2, argv=0xff944) at main.c:822<br>
(gdb) <br>
<br>
<o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>