* [dpdk-dev] [PATCH 0/3] add support of musl @ 2017-03-10 11:58 Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw) To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai musl is an alternative LIBC to GLIBC. It is an implementation of the userspace portion of the standard library functionality described in the ISO C and POSIX standards, plus common extensions. Some DPDK customers fail to build DPDK with musl. But so far execinfo.h is not supported by musl. In order to build DPDK with musl, there is a need to remove references to execinfo.h. Currently only backtrace() and backtrace_symbols( ) from execinfo.h are used in rte_dump_stack( ) in lib/librte_eal/linuxapp/eal/eal_debug.c . This rte_dump_stack( ) is only used to get the name of fucntions in call stack for debugging. Wei Dai (3): examples/performance-thread: remove reference to execinfo.h config: add support of musl eal: remove references to execinfo.h for musl config/common_linuxapp | 1 + examples/performance-thread/common/lthread_tls.c | 1 - lib/librte_eal/linuxapp/eal/eal_debug.c | 7 ++++++- 3 files changed, 7 insertions(+), 2 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h 2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai @ 2017-03-10 11:58 ` Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 2/3] config: add support of musl Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai 2 siblings, 0 replies; 8+ messages in thread From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw) To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai There is no function to refer any part of it, so remove the reference to it. And there is no this file in musl. So need to remove it to support musl. The musl is an alternative LIBC to GLIBC and provides the standard C/POSIX library and extensions. The musl can be got from http://www.musl-libc.org Signed-off-by: Wei Dai <wei.dai@intel.com> --- examples/performance-thread/common/lthread_tls.c | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/performance-thread/common/lthread_tls.c b/examples/performance-thread/common/lthread_tls.c index 6876f83..47505f2 100644 --- a/examples/performance-thread/common/lthread_tls.c +++ b/examples/performance-thread/common/lthread_tls.c @@ -42,7 +42,6 @@ #include <fcntl.h> #include <sys/time.h> #include <sys/mman.h> -#include <execinfo.h> #include <sched.h> #include <rte_malloc.h> -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH 2/3] config: add support of musl 2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai @ 2017-03-10 11:58 ` Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai 2 siblings, 0 replies; 8+ messages in thread From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw) To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai When building DPDK with musl, there is need to generate the MACRO named RTE_LIBC_MUSL in rte_config.h to remove some references to execinfo.h which is not supported by musl now. Got more details about musl from http://www.musl-libc.org . Signed-off-by: Wei Dai <wei.dai@intel.com> --- config/common_linuxapp | 1 + 1 file changed, 1 insertion(+) diff --git a/config/common_linuxapp b/config/common_linuxapp index 00ebaac..66fb0a3 100644 --- a/config/common_linuxapp +++ b/config/common_linuxapp @@ -46,3 +46,4 @@ CONFIG_RTE_LIBRTE_PMD_TAP=y CONFIG_RTE_LIBRTE_NFP_PMD=y CONFIG_RTE_LIBRTE_POWER=y CONFIG_RTE_VIRTIO_USER=y +CONFIG_RTE_LIBC_MUSL=n -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl 2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 2/3] config: add support of musl Wei Dai @ 2017-03-10 11:58 ` Wei Dai 2017-03-10 12:40 ` Thomas Monjalon 2 siblings, 1 reply; 8+ messages in thread From: Wei Dai @ 2017-03-10 11:58 UTC (permalink / raw) To: dev; +Cc: john.mcnamara, thomas.monjalon, david.marchand, Wei Dai execinfo.h is not supported by musl now. need to remove references to execinfo.h to build DPDK with musl. musl is an implementation of the userspace portion of the standard library functionality described in the ISO C and POSIX standards, plus common extensions. Get more details about musl from http://www.musl-libc.org Signed-off-by: Wei Dai <wei.dai@intel.com> --- lib/librte_eal/linuxapp/eal/eal_debug.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_debug.c b/lib/librte_eal/linuxapp/eal/eal_debug.c index 5fbc17c..d2416ee 100644 --- a/lib/librte_eal/linuxapp/eal/eal_debug.c +++ b/lib/librte_eal/linuxapp/eal/eal_debug.c @@ -31,7 +31,10 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <execinfo.h> +#ifndef RTE_LIBC_MUSL + #include <execinfo.h> +#endif + #include <stdarg.h> #include <signal.h> #include <stdlib.h> @@ -47,6 +50,7 @@ /* dump the stack of the calling core */ void rte_dump_stack(void) { +#ifndef RTE_LIBC_MUSL void *func[BACKTRACE_SIZE]; char **symb = NULL; int size; @@ -64,6 +68,7 @@ void rte_dump_stack(void) } free(symb); +#endif } /* not implemented in this environment */ -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl 2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai @ 2017-03-10 12:40 ` Thomas Monjalon 2017-03-10 14:49 ` Jan Blunck 0 siblings, 1 reply; 8+ messages in thread From: Thomas Monjalon @ 2017-03-10 12:40 UTC (permalink / raw) To: Wei Dai; +Cc: dev, john.mcnamara, david.marchand 2017-03-10 19:58, Wei Dai: > @@ -47,6 +50,7 @@ > /* dump the stack of the calling core */ > void rte_dump_stack(void) > { > +#ifndef RTE_LIBC_MUSL > void *func[BACKTRACE_SIZE]; > char **symb = NULL; > int size; > @@ -64,6 +68,7 @@ void rte_dump_stack(void) > } > > free(symb); > +#endif > } There are probably other libc implementations not supporting this feature. Instead of calling it "RTE_LIBC_MUSL", it should something like "ENABLE_BACKTRACE". Then you can add a musl section in the Linux quick start guide. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl 2017-03-10 12:40 ` Thomas Monjalon @ 2017-03-10 14:49 ` Jan Blunck 2017-03-13 8:10 ` Dai, Wei 0 siblings, 1 reply; 8+ messages in thread From: Jan Blunck @ 2017-03-10 14:49 UTC (permalink / raw) To: Thomas Monjalon; +Cc: Wei Dai, dev, Mcnamara, John, david.marchand On Fri, Mar 10, 2017 at 1:40 PM, Thomas Monjalon <thomas.monjalon@6wind.com> wrote: > 2017-03-10 19:58, Wei Dai: >> @@ -47,6 +50,7 @@ >> /* dump the stack of the calling core */ >> void rte_dump_stack(void) >> { >> +#ifndef RTE_LIBC_MUSL >> void *func[BACKTRACE_SIZE]; >> char **symb = NULL; >> int size; >> @@ -64,6 +68,7 @@ void rte_dump_stack(void) >> } >> >> free(symb); >> +#endif >> } > > There are probably other libc implementations not supporting this feature. > Instead of calling it "RTE_LIBC_MUSL", it should something like > "ENABLE_BACKTRACE". > Then you can add a musl section in the Linux quick start guide. Also I would improve the code readability by removing the preprocessor junk from it by moving the rte_dump_stack() function into eal_backtrace.c and make that conditionally compile based on CONFIG_ENABLE_BACKTRACE. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl 2017-03-10 14:49 ` Jan Blunck @ 2017-03-13 8:10 ` Dai, Wei 2017-03-15 8:38 ` Jan Blunck 0 siblings, 1 reply; 8+ messages in thread From: Dai, Wei @ 2017-03-13 8:10 UTC (permalink / raw) To: Jan Blunck, Thomas Monjalon Cc: dev, Mcnamara, John, david.marchand, Tan, Raymond > -----Original Message----- > From: jblunck@gmail.com [mailto:jblunck@gmail.com] On Behalf Of Jan Blunck > Sent: Friday, March 10, 2017 10:50 PM > To: Thomas Monjalon <thomas.monjalon@6wind.com> > Cc: Dai, Wei <wei.dai@intel.com>; dev <dev@dpdk.org>; Mcnamara, John > <john.mcnamara@intel.com>; david.marchand@intel.com > Subject: Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for > musl > > On Fri, Mar 10, 2017 at 1:40 PM, Thomas Monjalon > <thomas.monjalon@6wind.com> wrote: > > 2017-03-10 19:58, Wei Dai: > >> @@ -47,6 +50,7 @@ > >> /* dump the stack of the calling core */ void rte_dump_stack(void) > >> { > >> +#ifndef RTE_LIBC_MUSL > >> void *func[BACKTRACE_SIZE]; > >> char **symb = NULL; > >> int size; > >> @@ -64,6 +68,7 @@ void rte_dump_stack(void) > >> } > >> > >> free(symb); > >> +#endif > >> } > > > > There are probably other libc implementations not supporting this feature. > > Instead of calling it "RTE_LIBC_MUSL", it should something like > > "ENABLE_BACKTRACE". > > Then you can add a musl section in the Linux quick start guide. > > Also I would improve the code readability by removing the preprocessor junk > from it by moving the rte_dump_stack() function into eal_backtrace.c and make > that conditionally compile based on CONFIG_ENABLE_BACKTRACE. I'd like to change CONFIG_RTE_LIBC_MUSL to CONFIG_RTE_EAL_ENABLE_BACKTRACE and Will send a v2 patch soon. Anyway, you also still can move rte_dump_stack() to another file when my change is accepted. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl 2017-03-13 8:10 ` Dai, Wei @ 2017-03-15 8:38 ` Jan Blunck 0 siblings, 0 replies; 8+ messages in thread From: Jan Blunck @ 2017-03-15 8:38 UTC (permalink / raw) To: Dai, Wei Cc: Thomas Monjalon, dev, Mcnamara, John, david.marchand, Tan, Raymond On Mon, Mar 13, 2017 at 9:10 AM, Dai, Wei <wei.dai@intel.com> wrote: >> -----Original Message----- >> From: jblunck@gmail.com [mailto:jblunck@gmail.com] On Behalf Of Jan Blunck >> Sent: Friday, March 10, 2017 10:50 PM >> To: Thomas Monjalon <thomas.monjalon@6wind.com> >> Cc: Dai, Wei <wei.dai@intel.com>; dev <dev@dpdk.org>; Mcnamara, John >> <john.mcnamara@intel.com>; david.marchand@intel.com >> Subject: Re: [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for >> musl >> >> On Fri, Mar 10, 2017 at 1:40 PM, Thomas Monjalon >> <thomas.monjalon@6wind.com> wrote: >> > 2017-03-10 19:58, Wei Dai: >> >> @@ -47,6 +50,7 @@ >> >> /* dump the stack of the calling core */ void rte_dump_stack(void) >> >> { >> >> +#ifndef RTE_LIBC_MUSL >> >> void *func[BACKTRACE_SIZE]; >> >> char **symb = NULL; >> >> int size; >> >> @@ -64,6 +68,7 @@ void rte_dump_stack(void) >> >> } >> >> >> >> free(symb); >> >> +#endif >> >> } >> > >> > There are probably other libc implementations not supporting this feature. >> > Instead of calling it "RTE_LIBC_MUSL", it should something like >> > "ENABLE_BACKTRACE". >> > Then you can add a musl section in the Linux quick start guide. >> >> Also I would improve the code readability by removing the preprocessor junk >> from it by moving the rte_dump_stack() function into eal_backtrace.c and make >> that conditionally compile based on CONFIG_ENABLE_BACKTRACE. > > I'd like to change CONFIG_RTE_LIBC_MUSL to CONFIG_RTE_EAL_ENABLE_BACKTRACE and > Will send a v2 patch soon. > Anyway, you also still can move rte_dump_stack() to another file when my change is accepted. > Thanks for working on it! Please also merge the introduction of the configuration and its usage into one patch. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-03-15 8:38 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-03-10 11:58 [dpdk-dev] [PATCH 0/3] add support of musl Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 1/3] examples/performance-thread: remove reference to execinfo.h Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 2/3] config: add support of musl Wei Dai 2017-03-10 11:58 ` [dpdk-dev] [PATCH 3/3] eal: remove references to execinfo.h for musl Wei Dai 2017-03-10 12:40 ` Thomas Monjalon 2017-03-10 14:49 ` Jan Blunck 2017-03-13 8:10 ` Dai, Wei 2017-03-15 8:38 ` Jan Blunck
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).