[Web10g-user] broken Makefile for userspace APIs

rapier rapier at psc.edu
Tue Aug 14 11:35:29 EDT 2012


I've seen this before myself. If moving the order of the library in the 
makefile fixes this problem we'll definitely make that switch. The 
interesting thing is that this might be Ubuntu specific. My colleagues 
haven't come across the same issue in other distros.

Has anyone else on the list seen this problem? If so how did you resolve 
it?

Chris

On 8/13/12 6:04 PM, Colin Dixon wrote:
> Here's the output from running make first with the fixed Makefile and
> second with the Makefile in the distribution I got from web10g.org. This
> is on the same machine (I ran them just now) with the 3.2 kernel Web10g
> patches and the version of libmnl (1.0.2) from the same folder having
> been installed.
>
> --Colin
>
> ~/web10g-estats-0.1-3.2-fixed-Makefile$ make
> cc -Wall -Wextra -Wno-unused web10g_request.c tcp_estats_resolve.c -o
> web10g_request -lmnl
> cc -Wall -Wextra -Wno-unused web10g_receive.c tcp_estats_resolve.c
> tcp_estats_var.c -o web10g_receive -lmnl
>
> ~/web10g-estats-0.1-3.2$ make
> cc -Wall -Wextra -Wno-unused -lmnl web10g_request.c tcp_estats_resolve.c
> -o web10g_request
> /tmp/ccBChhK3.o: In function `main':
> web10g_request.c:(.text+0x3b0): undefined reference to
> `mnl_nlmsg_put_header'
> web10g_request.c:(.text+0x402): undefined reference to
> `mnl_nlmsg_put_extra_header'
> web10g_request.c:(.text+0x45f): undefined reference to
> `mnl_attr_nest_start_check'
> web10g_request.c:(.text+0x495): undefined reference to `mnl_attr_put_u32'
> web10g_request.c:(.text+0x4ab): undefined reference to `mnl_attr_nest_end'
> web10g_request.c:(.text+0x4ca): undefined reference to
> `mnl_attr_nest_start_check'
> web10g_request.c:(.text+0x50e): undefined reference to `mnl_attr_put_u64'
> web10g_request.c:(.text+0x533): undefined reference to `mnl_attr_put_u64'
> web10g_request.c:(.text+0x558): undefined reference to `mnl_attr_put_u64'
> web10g_request.c:(.text+0x57d): undefined reference to `mnl_attr_put_u64'
> web10g_request.c:(.text+0x5a2): undefined reference to `mnl_attr_put_u64'
> web10g_request.c:(.text+0x5b8): undefined reference to `mnl_attr_nest_end'
> web10g_request.c:(.text+0x5c2): undefined reference to `mnl_socket_open'
> web10g_request.c:(.text+0x5f7): undefined reference to `mnl_socket_bind'
> web10g_request.c:(.text+0x620): undefined reference to
> `mnl_socket_get_portid'
> web10g_request.c:(.text+0x644): undefined reference to `mnl_socket_sendto'
> web10g_request.c:(.text+0x67f): undefined reference to `mnl_socket_recvfrom'
> web10g_request.c:(.text+0x6c3): undefined reference to `mnl_cb_run'
> web10g_request.c:(.text+0x6ec): undefined reference to `mnl_socket_close'
> /tmp/ccyOqr6y.o: In function `parse_attr_mcast_cb':
> tcp_estats_resolve.c:(.text+0x20): undefined reference to
> `mnl_attr_get_type'
> tcp_estats_resolve.c:(.text+0x37): undefined reference to
> `mnl_attr_type_valid'
> tcp_estats_resolve.c:(.text+0x6c): undefined reference to
> `mnl_attr_validate'
> tcp_estats_resolve.c:(.text+0x92): undefined reference to
> `mnl_attr_validate'
> /tmp/ccyOqr6y.o: In function `parse_attr_cb':
> tcp_estats_resolve.c:(.text+0xea): undefined reference to
> `mnl_attr_get_type'
> tcp_estats_resolve.c:(.text+0x101): undefined reference to
> `mnl_attr_type_valid'
> tcp_estats_resolve.c:(.text+0x136): undefined reference to
> `mnl_attr_validate'
> tcp_estats_resolve.c:(.text+0x15c): undefined reference to
> `mnl_attr_validate'
> /tmp/ccyOqr6y.o: In function `data_cb':
> tcp_estats_resolve.c:(.text+0x1b4): undefined reference to
> `mnl_nlmsg_get_payload'
> tcp_estats_resolve.c:(.text+0x1d5): undefined reference to `mnl_attr_parse'
> /tmp/ccyOqr6y.o: In function `resolve_web10g_nladdr':
> tcp_estats_resolve.c:(.text+0x29f): undefined reference to
> `mnl_nlmsg_put_header'
> tcp_estats_resolve.c:(.text+0x2df): undefined reference to
> `mnl_nlmsg_put_extra_header'
> tcp_estats_resolve.c:(.text+0x30a): undefined reference to
> `mnl_attr_put_strz'
> tcp_estats_resolve.c:(.text+0x314): undefined reference to `mnl_socket_open'
> tcp_estats_resolve.c:(.text+0x349): undefined reference to `mnl_socket_bind'
> tcp_estats_resolve.c:(.text+0x36d): undefined reference to
> `mnl_socket_get_portid'
> tcp_estats_resolve.c:(.text+0x38b): undefined reference to
> `mnl_socket_sendto'
> tcp_estats_resolve.c:(.text+0x3c0): undefined reference to
> `mnl_socket_recvfrom'
> tcp_estats_resolve.c:(.text+0x3fd): undefined reference to `mnl_cb_run'
> tcp_estats_resolve.c:(.text+0x434): undefined reference to
> `mnl_attr_get_u16'
> tcp_estats_resolve.c:(.text+0x453): undefined reference to
> `mnl_attr_get_payload'
> tcp_estats_resolve.c:(.text+0x471): undefined reference to
> `mnl_attr_parse_nested'
> tcp_estats_resolve.c:(.text+0x498): undefined reference to
> `mnl_attr_get_str'
> tcp_estats_resolve.c:(.text+0x4ab): undefined reference to
> `mnl_attr_get_u32'
> tcp_estats_resolve.c:(.text+0x4ba): undefined reference to `mnl_attr_next'
> tcp_estats_resolve.c:(.text+0x4ca): undefined reference to
> `mnl_attr_get_payload'
> tcp_estats_resolve.c:(.text+0x4d9): undefined reference to
> `mnl_attr_get_payload_len'
> tcp_estats_resolve.c:(.text+0x4ff): undefined reference to `mnl_attr_ok'
> tcp_estats_resolve.c:(.text+0x513): undefined reference to
> `mnl_socket_close'
> collect2: ld returned 1 exit status
> make: *** [default] Error 1
>
> web10g-user-bounces at web10g.org wrote on 08/13/2012 04:54:01 PM:
>  > From: rapier <rapier at psc.edu>
>  > To: web10g-user at web10g.org,
>  > Date: 08/13/2012 04:54 PM
>  > Subject: Re: [Web10g-user] broken Makefile for userspace APIs
>  > Sent by: web10g-user-bounces at web10g.org
>  >
>  > Thanks for the information Colin. I'll make sure that our team evaluates
>  > this. Can I ask what specific problems you were having with the build?
>  >
>  > Chris
>  >
>  >
>  > On 8/13/12 5:33 PM, Colin Dixon wrote:
>  > > I tried to build the userspace APIs on Ubuntu 12.0.4 and found that the
>  > > wouldn't compile. After a bit of poking, our intern found that moving
>  > > the -lmnl option to the end of the lines in the Makefile solved the
> problem.
>  > >
>  > > Presumably, others will run into this issue. I've put the relevant
> patch
>  > > inline below.
>  > >
>  > > Colin Dixon
>  > > Researcher
>  > > IBM Research — Austin
>  > >
>  > > $ diff -up web10g-estats-0.1-3.2/Makefile
>  > > web10g-estats-0.1-3.2-fixed-Makefile/Makefile
>  > > --- web10g-estats-0.1-3.2/Makefile 2012-03-20 21:24:02.000000000 -0500
>  > > +++ web10g-estats-0.1-3.2-fixed-Makefile/Makefile 2012-08-08
>  > > 12:10:42.597202989 -0500
>  > > @@ -1,7 +1,7 @@
>  > >
>  > >   default:
>  > > - $(CC) -Wall -Wextra -Wno-unused -lmnl web10g_request.c
>  > > tcp_estats_resolve.c -o web10g_request
>  > > - $(CC) -Wall -Wextra -Wno-unused -lmnl web10g_receive.c
>  > > tcp_estats_resolve.c tcp_estats_var.c -o web10g_receive
>  > > + $(CC) -Wall -Wextra -Wno-unused web10g_request.c tcp_estats_resolve.c
>  > > -o web10g_request -lmnl
>  > > + $(CC) -Wall -Wextra -Wno-unused web10g_receive.c tcp_estats_resolve.c
>  > > tcp_estats_var.c -o web10g_receive -lmnl
>  > >
>  > >   clean:
>  > >    rm -rf *.o web10g_receive web10g_request
>  > >
>  > >
>  > > _______________________________________________
>  > > Web10g-user mailing list
>  > > Web10g-user at web10g.org
>  > > https://lists.psc.edu/mailman/listinfo/web10g-user
>  > >
>  > > To UNSUBSCRIBE visit
> https://lists.psc.edu/mailman/unsubscribe/web10g-user
>  > >
>  > _______________________________________________
>  > Web10g-user mailing list
>  > Web10g-user at web10g.org
>  > https://lists.psc.edu/mailman/listinfo/web10g-user
>  >
>  > To UNSUBSCRIBE visit
> https://lists.psc.edu/mailman/unsubscribe/web10g-user
>  >
>


More information about the Web10g-user mailing list