Thread (13 messages) flat view 13 messages, 2 authors, 2021-05-26

Re: Crosscompiling iproute2

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2021-05-25 21:37:25

On Tue, 25 May 2021 20:18:39 +0200
Frank Wunderlich [off-list ref] wrote:
quoted
Gesendet: Dienstag, 25. Mai 2021 um 18:08 Uhr
Von: "Stephen Hemminger" [off-list ref]
An: "Frank Wunderlich" [off-list ref]
Cc: netdev@vger.kernel.org
Betreff: Re: Crosscompiling iproute2

On Tue, 25 May 2021 17:56:09 +0200
Frank Wunderlich [off-list ref] wrote:
 
quoted
Am 24. Mai 2021 23:36:20 MESZ schrieb Stephen Hemminger [off-list ref]:  
quoted
On Mon, 24 May 2021 21:06:02 +0200
Frank Wunderlich [off-list ref] wrote:
 
quoted
Am 17. Mai 2021 21:36:28 MESZ schrieb Stephen Hemminger  
[off-list ref]:  
quoted
quoted
On Mon, 17 May 2021 09:44:21 +0200
This works for me:

make CC="$CC" LD="$LD" HOSTCC=gcc  
Hi,

Currently have an issue i guess from install. After compile i install  
into local directory,pack it and unpack on target system
(/usr/local/sbin).tried  
quoted
https://github.com/frank-w/iproute2/blob/main/crosscompile.sh#L17  
 
quoted
Basic ip commands work,but if i try e.g. this

ip link add name lanbr0 type bridge vlan_filtering 1  
vlan_default_pvid 500  
quoted
I get this:

Garbage instead of arguments "vlan_filtering ...". Try "ip link  
help".  
quoted
I guess ip tries to call bridge binary from wrong path (tried  
$PRFX/usr/local/bin).  
quoted
regards Frank  
No ip command does not call bridge.

More likely either your kernel is out of date with the ip command (ie
new ip command is asking for
something kernel doesn't understand);  
I use 5.13-rc2 and can use the same command with debians ip command
 
quoted
or the iplink_bridge.c was not
compiled as part of your compile;
or simple PATH issue
or your system is not handling dlopen(NULL) correctly.  
Which lib does ip load when using the vlanfiltering option?  
It is doing dlopen of itself, no other library
 
quoted
 
quoted
What happens is that the "type" field in ip link triggers the code
to use dlopen as form of introspection (see get_link_kind)  
this seems to be the problem:

openat(AT_FDCWD, "/usr/lib/ip/link_bridge.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "Garbage instead of arguments \"vl"..., 71Garbage instead of arguments "vlan_filtering ...". Try "ip link help".

i have no /usr/lib/ip directory, my package contains only lib-folder for tc (with dist files only because i use static linking). also there is no *.so in my building-directory
That only gets called if you haven't got the bridge part in the original ip command.
The shared library stuff is for other non-static libraries to extend iproute2.
This is unused by most distro's and you shouldn't need it.

I think the bridge part was just not built in your version.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help