I recently tried to compile both lastest releast of MRT (2.2.0a) and CVS source on a
Redhat 6.2 machine but failed. Libraries such as kernel, bgp simulator, are broken and
many many "undefined reference" error related to RIP when compile "mrtd"
So I wonder is there any particular linux version I should work with, or I misconfigured
some options? I tried different --disable, doesn't seem to work either.
Thanks for help
Feiyi
Hi,
I noticed this bug I submitted before. I think it can be fixed by commenting out "struct in_pktinfo" in src/lib/kernel/socket.c. (mrt.h include netinet/in.h, which again includes bits/in.h, and "struct in_pktinfo" already defined). Attached is a patch generated against CVS tree, could someone verify it? thanks /Feiyi
Index: socket.c
RCS file: /cvsroot/mrt/mrt/src/lib/kernel/socket.c,v
retrieving revision 1.2
diff -c -r1.2 socket.c
*** socket.c 2000/09/09 02:49:42 1.2
--- socket.c 2000/10/31 21:58:56
***************
*** 21,33 ****
#endif /* HAVE_NETINET_ICMP6_H */
#ifdef linux
/* #include <linux/in.h> */
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
!
#endif /* linux */
#include <api6.h>
#include <igmp.h>
--- 21,34 ----
#endif /* HAVE_NETINET_ICMP6_H */
#ifdef linux
/* #include <linux/in.h> */
+ /*
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
! */
#endif /* linux */
#include <api6.h>
#include <igmp.h>
Hi,
I noticed this bug I submitted before. I think it can be fixed by commenting out "struct in_pktinfo" in src/lib/kernel/socket.c. (mrt.h include netinet/in.h, which again includes bits/in.h, and "struct in_pktinfo" already defined). Attached is a patch generated against CVS tree, could someone verify it? thanks /Feiyi
Index: socket.c
RCS file: /cvsroot/mrt/mrt/src/lib/kernel/socket.c,v
retrieving revision 1.2
diff -c -r1.2 socket.c
*** socket.c 2000/09/09 02:49:42 1.2
--- socket.c 2000/10/31 21:58:56
***************
*** 21,33 ****
#endif /* HAVE_NETINET_ICMP6_H */
#ifdef linux
/* #include <linux/in.h> */
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
!
#endif /* linux */
#include <api6.h>
#include <igmp.h>
--- 21,34 ----
#endif /* HAVE_NETINET_ICMP6_H */
#ifdef linux
/* #include <linux/in.h> */
+ /*
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
! */
#endif /* linux */
#include <api6.h>
#include <igmp.h>
Logged In: NO
There are two other problems that also need to be addressed
on Redhat 7.2.
In the file lib/mrt/buffer.c on line 379 the "short" needs
to be an "int" to compile.
In the file lib/mrt/trace.c on line 499 the "u_char" needs
to be a "u_int" to compile.
-- Jim Davis