diff mbox series

um: Add back support for extra userspace libraries

Message ID 20191016141312.15684-1-anton.ivanov@cambridgegreys.com
State Rejected
Headers show
Series um: Add back support for extra userspace libraries | expand

Commit Message

Anton Ivanov Oct. 16, 2019, 2:13 p.m. UTC
PCAP and VDE network transports require linking with userspace
libraries. The current build system has no means of passing these
as arguments.

This patch adds a script to expand the library list for linking
for these transports as well as any future driver that needs to
rely on additional libraries on the userspace side.

Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
---
 arch/um/scripts/extra-libs.sh | 10 ++++++++++
 scripts/link-vmlinux.sh       |  4 +++-
 2 files changed, 13 insertions(+), 1 deletion(-)
 create mode 100644 arch/um/scripts/extra-libs.sh

Comments

Ritesh Raj Sarraf Oct. 17, 2019, 11:32 a.m. UTC | #1
Hello Anton,

Thank you so much for working on this fix. I tested this patch and it
works. Some comments below though.

On Wed, 2019-10-16 at 15:13 +0100, Anton Ivanov wrote:
> PCAP and VDE network transports require linking with userspace
> libraries. The current build system has no means of passing these
> as arguments.
> 
> This patch adds a script to expand the library list for linking
> for these transports as well as any future driver that needs to
> rely on additional libraries on the userspace side.
> 
> Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
> ---
>  arch/um/scripts/extra-libs.sh | 10 ++++++++++
>  scripts/link-vmlinux.sh       |  4 +++-
>  2 files changed, 13 insertions(+), 1 deletion(-)
>  create mode 100644 arch/um/scripts/extra-libs.sh
> 
> diff --git a/arch/um/scripts/extra-libs.sh b/arch/um/scripts/extra-
> libs.sh
> new file mode 100644
> index 000000000000..0592485e0675
> --- /dev/null
> +++ b/arch/um/scripts/extra-libs.sh
> @@ -0,0 +1,10 @@
> +#!/bin/sh
> +
> +# This file should be included from link-vmlinux, not executed!!!
> +
> +if [ "${CONFIG_UML_NET_VDE}" = "y" ] ; then
> +	UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lvde -lvdeplug"
> +fi
> +if [ "${CONFIG_UML_NET_PCAP}" = "y" ] ; then
> +	UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lpcap"
> +fi

-lvde is not understood. I added the build dependency to libvde-dev on
Debian but that still did not help. 

So instead I dropped it to get the build going. And my tests about
networking look fine.

The revised patch that I'm using is attached with this email.


> diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
> index 06495379fcd8..15f9e5096da0 100755
> --- a/scripts/link-vmlinux.sh
> +++ b/scripts/link-vmlinux.sh
> @@ -90,11 +90,13 @@ vmlinux_link()
>  			-Wl,--end-group				\
>  			${@}"
>  
> +		. arch/um/scripts/extra-libs.sh
> +
>  		${CC} ${CFLAGS_vmlinux}				\
>  			-o ${output}				\
>  			-Wl,-T,${lds}				\
>  			${objects}				\
> -			-lutil -lrt -lpthread
> +			-lutil -lrt -lpthread ${UML_EXTRA_LIBS}
>  		rm -f linux
>  	fi
>  }
Richard Weinberger Nov. 25, 2019, 9:32 p.m. UTC | #2
On Thu, Oct 17, 2019 at 1:32 PM Ritesh Raj Sarraf <rrs@debian.org> wrote:
>
> Hello Anton,
>
> Thank you so much for working on this fix. I tested this patch and it
> works. Some comments below though.
>
> On Wed, 2019-10-16 at 15:13 +0100, Anton Ivanov wrote:
> > PCAP and VDE network transports require linking with userspace
> > libraries. The current build system has no means of passing these
> > as arguments.
> >
> > This patch adds a script to expand the library list for linking
> > for these transports as well as any future driver that needs to
> > rely on additional libraries on the userspace side.
> >
> > Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
> > ---
> >  arch/um/scripts/extra-libs.sh | 10 ++++++++++
> >  scripts/link-vmlinux.sh       |  4 +++-
> >  2 files changed, 13 insertions(+), 1 deletion(-)
> >  create mode 100644 arch/um/scripts/extra-libs.sh
> >
> > diff --git a/arch/um/scripts/extra-libs.sh b/arch/um/scripts/extra-
> > libs.sh
> > new file mode 100644
> > index 000000000000..0592485e0675
> > --- /dev/null
> > +++ b/arch/um/scripts/extra-libs.sh
> > @@ -0,0 +1,10 @@
> > +#!/bin/sh
> > +
> > +# This file should be included from link-vmlinux, not executed!!!
> > +
> > +if [ "${CONFIG_UML_NET_VDE}" = "y" ] ; then
> > +     UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lvde -lvdeplug"
> > +fi
> > +if [ "${CONFIG_UML_NET_PCAP}" = "y" ] ; then
> > +     UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lpcap"
> > +fi
>
> -lvde is not understood. I added the build dependency to libvde-dev on
> Debian but that still did not help.
>
> So instead I dropped it to get the build going. And my tests about
> networking look fine.
>
> The revised patch that I'm using is attached with this email.
>
>
> > diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
> > index 06495379fcd8..15f9e5096da0 100755
> > --- a/scripts/link-vmlinux.sh
> > +++ b/scripts/link-vmlinux.sh
> > @@ -90,11 +90,13 @@ vmlinux_link()
> >                       -Wl,--end-group                         \
> >                       ${@}"
> >
> > +             . arch/um/scripts/extra-libs.sh
> > +
> >               ${CC} ${CFLAGS_vmlinux}                         \
> >                       -o ${output}                            \
> >                       -Wl,-T,${lds}                           \
> >                       ${objects}                              \
> > -                     -lutil -lrt -lpthread
> > +                     -lutil -lrt -lpthread ${UML_EXTRA_LIBS}
> >               rm -f linux
> >       fi
> >  }

I fear without an ACK from kbuild folks I'm unable to monkey this patch.
No need to worry, this one can be merged after -rc1.
Anton Ivanov Nov. 25, 2019, 9:54 p.m. UTC | #3
On 25/11/2019 21:32, Richard Weinberger wrote:
> On Thu, Oct 17, 2019 at 1:32 PM Ritesh Raj Sarraf <rrs@debian.org> wrote:
>>
>> Hello Anton,
>>
>> Thank you so much for working on this fix. I tested this patch and it
>> works. Some comments below though.
>>
>> On Wed, 2019-10-16 at 15:13 +0100, Anton Ivanov wrote:
>>> PCAP and VDE network transports require linking with userspace
>>> libraries. The current build system has no means of passing these
>>> as arguments.
>>>
>>> This patch adds a script to expand the library list for linking
>>> for these transports as well as any future driver that needs to
>>> rely on additional libraries on the userspace side.
>>>
>>> Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
>>> ---
>>>   arch/um/scripts/extra-libs.sh | 10 ++++++++++
>>>   scripts/link-vmlinux.sh       |  4 +++-
>>>   2 files changed, 13 insertions(+), 1 deletion(-)
>>>   create mode 100644 arch/um/scripts/extra-libs.sh
>>>
>>> diff --git a/arch/um/scripts/extra-libs.sh b/arch/um/scripts/extra-
>>> libs.sh
>>> new file mode 100644
>>> index 000000000000..0592485e0675
>>> --- /dev/null
>>> +++ b/arch/um/scripts/extra-libs.sh
>>> @@ -0,0 +1,10 @@
>>> +#!/bin/sh
>>> +
>>> +# This file should be included from link-vmlinux, not executed!!!
>>> +
>>> +if [ "${CONFIG_UML_NET_VDE}" = "y" ] ; then
>>> +     UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lvde -lvdeplug"
>>> +fi
>>> +if [ "${CONFIG_UML_NET_PCAP}" = "y" ] ; then
>>> +     UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lpcap"
>>> +fi
>>
>> -lvde is not understood. I added the build dependency to libvde-dev on
>> Debian but that still did not help.
>>
>> So instead I dropped it to get the build going. And my tests about
>> networking look fine.
>>
>> The revised patch that I'm using is attached with this email.
>>
>>
>>> diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
>>> index 06495379fcd8..15f9e5096da0 100755
>>> --- a/scripts/link-vmlinux.sh
>>> +++ b/scripts/link-vmlinux.sh
>>> @@ -90,11 +90,13 @@ vmlinux_link()
>>>                        -Wl,--end-group                         \
>>>                        ${@}"
>>>
>>> +             . arch/um/scripts/extra-libs.sh
>>> +
>>>                ${CC} ${CFLAGS_vmlinux}                         \
>>>                        -o ${output}                            \
>>>                        -Wl,-T,${lds}                           \
>>>                        ${objects}                              \
>>> -                     -lutil -lrt -lpthread
>>> +                     -lutil -lrt -lpthread ${UML_EXTRA_LIBS}
>>>                rm -f linux
>>>        fi
>>>   }
> 
> I fear without an ACK from kbuild folks I'm unable to monkey this patch.
> No need to worry, this one can be merged after -rc1.
> 

Ack, this needs to be forwarded to the kbuild maintainers as well.
Brendan Higgins Dec. 7, 2019, 1:24 a.m. UTC | #4
> PCAP and VDE network transports require linking with userspace
> libraries. The current build system has no means of passing these
> as arguments.
>
> This patch adds a script to expand the library list for linking
> for these transports as well as any future driver that needs to
> rely on additional libraries on the userspace side.
>
> Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>

Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
diff mbox series

Patch

diff --git a/arch/um/scripts/extra-libs.sh b/arch/um/scripts/extra-libs.sh
new file mode 100644
index 000000000000..0592485e0675
--- /dev/null
+++ b/arch/um/scripts/extra-libs.sh
@@ -0,0 +1,10 @@ 
+#!/bin/sh
+
+# This file should be included from link-vmlinux, not executed!!!
+
+if [ "${CONFIG_UML_NET_VDE}" = "y" ] ; then
+	UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lvde -lvdeplug"
+fi
+if [ "${CONFIG_UML_NET_PCAP}" = "y" ] ; then
+	UML_EXTRA_LIBS="$UML_EXTRA_LIBS -lpcap"
+fi
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index 06495379fcd8..15f9e5096da0 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -90,11 +90,13 @@  vmlinux_link()
 			-Wl,--end-group				\
 			${@}"
 
+		. arch/um/scripts/extra-libs.sh
+
 		${CC} ${CFLAGS_vmlinux}				\
 			-o ${output}				\
 			-Wl,-T,${lds}				\
 			${objects}				\
-			-lutil -lrt -lpthread
+			-lutil -lrt -lpthread ${UML_EXTRA_LIBS}
 		rm -f linux
 	fi
 }