[v3] ppp: Allow arbitrary interface names to be specified in pppd config

Submitted by Mark Deneen on July 14, 2020, 5:08 p.m. | Patch ID: 174442

Details

Message ID 20200714170833.2096002-1-mdeneen@saucontech.com
State New
Headers show

Commit Message

Mark Deneen July 14, 2020, 5:08 p.m.
pppd is patched in most Linux distributions to allow arbitrary naming
of ppp interfaces, allowing users to create consistent firewall rules
rather than having interfaces named "ppp0", "ppp1", etc.  Yocto is
missing this option.

This patch, originally from SUSE, adds this option to pppd. It is not
included upstream because there are some pppd-supported platforms which
lack the ability to rename interfaces.

This is the same as the previous patch, but I messed up the subject line.

Upstream-Status: Inappropriate [not all platforms supported by pppd can rename interfaces]

Signed-off-by: Mark Deneen <mdeneen@saucontech.com>
---
 .../ppp/ppp/0002-pppd-add-ifname-option.patch | 214 ++++++++++++++++++
 meta/recipes-connectivity/ppp/ppp_2.4.8.bb    |   1 +
 2 files changed, 215 insertions(+)
 create mode 100644 meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch

Patch hide | download patch | download mbox

diff --git a/meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch b/meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch
new file mode 100644
index 0000000000..8e54024d15
--- /dev/null
+++ b/meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch
@@ -0,0 +1,214 @@ 
+From bbcdc4366bbee6c3f4e1ddda31e4eec8c1b3ccc2 Mon Sep 17 00:00:00 2001
+From: Paul Mackerras <paulus@samba.org>
+Date: Tue, 23 Aug 2016 16:10:21 +1000
+Subject: [PATCH 13/16] pppd: allow use of arbitrary interface names
+
+This is a modified version of a patch from openSUSE that enables PPP interfaces
+to be called arbitrary names, rather than simply pppX where X is the unit
+number.
+
+The modifications from the stock openSUSE patch are:
+- refresh patch on top of 018_ip-up_option.diff
+- fix a printf format-string vulnerability in pppd/main.c:set_ifunit()
+- clarify the pppd.8 manpage additions
+- patch pppstats/pppstats.c to query renamed interfaces without complaint
+
+Origin: SUSE
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458646
+Forwarded: no
+Reviewed-by: Chris Boot <bootc@debian.org>
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+---
+ pppd/main.c         | 16 ++++++----------
+ pppd/options.c      |  5 +++++
+ pppd/pppd.8         |  8 +++++++-
+ pppd/pppd.h         | 11 +++++++++++
+ pppd/sys-linux.c    | 15 +++++++++++++++
+ pppstats/pppstats.c | 12 ++++++------
+ 6 files changed, 50 insertions(+), 17 deletions(-)
+
+diff --git a/pppd/main.c b/pppd/main.c
+index 6d50d1bac1d9..f1986ed68d0b 100644
+--- a/pppd/main.c
++++ b/pppd/main.c
+@@ -124,7 +124,7 @@
+ static const char rcsid[] = RCSID;
+ 
+ /* interface vars */
+-char ifname[32];		/* Interface name */
++char ifname[MAXIFNAMELEN];	/* Interface name */
+ int ifunit;			/* Interface unit number */
+ 
+ struct channel *the_channel;
+@@ -298,13 +298,6 @@ struct protent *protocols[] = {
+     NULL
+ };
+ 
+-/*
+- * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
+- */
+-#if !defined(PPP_DRV_NAME)
+-#define PPP_DRV_NAME	"ppp"
+-#endif /* !defined(PPP_DRV_NAME) */
+-
+ int
+ main(argc, argv)
+     int argc;
+@@ -737,8 +730,11 @@ void
+ set_ifunit(iskey)
+     int iskey;
+ {
+-    info("Using interface %s%d", PPP_DRV_NAME, ifunit);
+-    slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
++    if (req_ifname[0] != '\0')
++	slprintf(ifname, sizeof(ifname), "%s", req_ifname);
++    else
++	slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
++    info("Using interface %s", ifname);
+     script_setenv("IFNAME", ifname, iskey);
+     if (iskey) {
+ 	create_pidfile(getpid());	/* write pid to file */
+diff --git a/pppd/options.c b/pppd/options.c
+index c06a2b4ad8ed..177488ca6813 100644
+--- a/pppd/options.c
++++ b/pppd/options.c
+@@ -114,6 +114,7 @@ char	linkname[MAXPATHLEN];	/* logical name for link */
+ bool	tune_kernel;		/* may alter kernel settings */
+ int	connect_delay = 1000;	/* wait this many ms after connect script */
+ int	req_unit = -1;		/* requested interface unit */
++char	req_ifname[MAXIFNAMELEN];	/* requested interface name */
+ bool	multilink = 0;		/* Enable multilink operation */
+ char	*bundle_name = NULL;	/* bundle name for multilink */
+ bool	dump_options;		/* print out option values */
+@@ -284,6 +285,10 @@ option_t general_options[] = {
+       "PPP interface unit number to use if possible",
+       OPT_PRIO | OPT_LLIMIT, 0, 0 },
+ 
++    { "ifname", o_string, req_ifname,
++      "Set PPP interface name",
++      OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXIFNAMELEN },
++
+     { "dump", o_bool, &dump_options,
+       "Print out option values after parsing all options", 1 },
+     { "dryrun", o_bool, &dryrun,
+diff --git a/pppd/pppd.8 b/pppd/pppd.8
+index c508d277df3a..06e945fce998 100644
+--- a/pppd/pppd.8
++++ b/pppd/pppd.8
+@@ -1079,7 +1079,13 @@ under Linux and FreeBSD 2.2.8 and later.
+ .TP
+ .B unit \fInum
+ Sets the ppp unit number (for a ppp0 or ppp1 etc interface name) for outbound
+-connections.
++connections.  If the unit is already in use a dynamically allocated number will
++be used.
++.TP
++.B ifname \fIstring
++Set the ppp interface name for outbound connections.  If the interface name is
++already in use, or if the name cannot be used for any other reason, pppd will
++terminate.
+ .TP
+ .B unset \fIname
+ Remove a variable from the environment variable for scripts that are
+diff --git a/pppd/pppd.h b/pppd/pppd.h
+index 247fa153739b..1a1bf0b99582 100644
+--- a/pppd/pppd.h
++++ b/pppd/pppd.h
+@@ -80,6 +80,16 @@
+ #define MAXARGS		1	/* max # args to a command */
+ #define MAXNAMELEN	256	/* max length of hostname or name for auth */
+ #define MAXSECRETLEN	256	/* max length of password or secret */
++#define MAXIFNAMELEN	32	/* max length of interface name; or use IFNAMSIZ, can we
++				   always include net/if.h? */
++
++/*
++ * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
++ * Where should PPP_DRV_NAME come from? Do we include it here?
++ */
++#if !defined(PPP_DRV_NAME)
++#define PPP_DRV_NAME	"ppp"
++#endif /* !defined(PPP_DRV_NAME) */
+ 
+ /*
+  * Option descriptor structure.
+@@ -318,6 +328,7 @@ extern bool	tune_kernel;	/* May alter kernel settings as necessary */
+ extern int	connect_delay;	/* Time to delay after connect script */
+ extern int	max_data_rate;	/* max bytes/sec through charshunt */
+ extern int	req_unit;	/* interface unit number to use */
++extern char	req_ifname[MAXIFNAMELEN]; /* interface name to use */
+ extern bool	multilink;	/* enable multilink operation */
+ extern bool	noendpoint;	/* don't send or accept endpt. discrim. */
+ extern char	*bundle_name;	/* bundle name for multilink */
+diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
+index b4a435d2a993..b832031f7e26 100644
+--- a/pppd/sys-linux.c
++++ b/pppd/sys-linux.c
+@@ -643,6 +643,21 @@ static int make_ppp_unit()
+ 	}
+ 	if (x < 0)
+ 		error("Couldn't create new ppp unit: %m");
++
++	if (x == 0 && req_ifname[0] != '\0') {
++		struct ifreq ifr;
++		char t[MAXIFNAMELEN];
++		memset(&ifr, 0, sizeof(struct ifreq));
++		slprintf(t, sizeof(t), "%s%d", PPP_DRV_NAME, ifunit);
++		strncpy(ifr.ifr_name, t, IF_NAMESIZE);
++		strncpy(ifr.ifr_newname, req_ifname, IF_NAMESIZE);
++		x = ioctl(sock_fd, SIOCSIFNAME, &ifr);
++		if (x < 0)
++		    error("Couldn't rename interface %s to %s: %m", t, req_ifname);
++		else
++		    info("Renamed interface %s to %s", t, req_ifname);
++	}
++
+ 	return x;
+ }
+ 
+diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c
+index 6367988eb96b..46cb9c24942b 100644
+--- a/pppstats/pppstats.c
++++ b/pppstats/pppstats.c
+@@ -88,7 +88,6 @@ int	aflag;			/* print absolute values, not deltas */
+ int	dflag;			/* print data rates, not bytes */
+ int	interval, count;
+ int	infinite;
+-int	unit;
+ int	s;			/* socket or /dev/ppp file descriptor */
+ int	signalled;		/* set if alarm goes off "early" */
+ char	*progname;
+@@ -449,6 +448,7 @@ main(argc, argv)
+ {
+     int c;
+ #ifdef STREAMS
++    int unit;
+     char *dev;
+ #endif
+ 
+@@ -506,11 +506,6 @@ main(argc, argv)
+     if (argc > 0)
+ 	interface = argv[0];
+ 
+-    if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
+-	fprintf(stderr, "%s: invalid interface '%s' specified\n",
+-		progname, interface);
+-    }
+-
+ #ifndef STREAMS
+     {
+ 	struct ifreq ifr;
+@@ -535,6 +530,11 @@ main(argc, argv)
+     }
+ 
+ #else	/* STREAMS */
++    if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
++	fprintf(stderr, "%s: invalid interface '%s' specified\n",
++		progname, interface);
++    }
++
+ #ifdef __osf__
+     dev = "/dev/streams/ppp";
+ #else
+-- 
+2.15.1
+
diff --git a/meta/recipes-connectivity/ppp/ppp_2.4.8.bb b/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
index f9c60d6bad..231c40f6ca 100644
--- a/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
+++ b/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
@@ -30,6 +30,7 @@  SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \
            file://fix-CVE-2015-3310.patch \
            file://0001-ppp-Remove-unneeded-include.patch \
            file://0001-pppd-Fix-bounds-check-in-EAP-code.patch \
+           file://0002-pppd-add-ifname-option.patch \
            "
 
 SRC_URI_append_libc-musl = "\

Comments

Khem Raj July 14, 2020, 5:10 p.m.
On 7/14/20 10:08 AM, Mark Deneen wrote:
> pppd is patched in most Linux distributions to allow arbitrary naming
> of ppp interfaces, allowing users to create consistent firewall rules
> rather than having interfaces named "ppp0", "ppp1", etc.  Yocto is
> missing this option.
> 
> This patch, originally from SUSE, adds this option to pppd. It is not
> included upstream because there are some pppd-supported platforms which
> lack the ability to rename interfaces.
> 

are you aware of any of these platforms being supported by OE ?

> This is the same as the previous patch, but I messed up the subject line.
> 
> Upstream-Status: Inappropriate [not all platforms supported by pppd can rename interfaces]
> 
> Signed-off-by: Mark Deneen <mdeneen@saucontech.com>
> ---
>  .../ppp/ppp/0002-pppd-add-ifname-option.patch | 214 ++++++++++++++++++
>  meta/recipes-connectivity/ppp/ppp_2.4.8.bb    |   1 +
>  2 files changed, 215 insertions(+)
>  create mode 100644 meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch
> 
> diff --git a/meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch b/meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch
> new file mode 100644
> index 0000000000..8e54024d15
> --- /dev/null
> +++ b/meta/recipes-connectivity/ppp/ppp/0002-pppd-add-ifname-option.patch
> @@ -0,0 +1,214 @@
> +From bbcdc4366bbee6c3f4e1ddda31e4eec8c1b3ccc2 Mon Sep 17 00:00:00 2001
> +From: Paul Mackerras <paulus@samba.org>
> +Date: Tue, 23 Aug 2016 16:10:21 +1000
> +Subject: [PATCH 13/16] pppd: allow use of arbitrary interface names
> +
> +This is a modified version of a patch from openSUSE that enables PPP interfaces
> +to be called arbitrary names, rather than simply pppX where X is the unit
> +number.
> +
> +The modifications from the stock openSUSE patch are:
> +- refresh patch on top of 018_ip-up_option.diff
> +- fix a printf format-string vulnerability in pppd/main.c:set_ifunit()
> +- clarify the pppd.8 manpage additions
> +- patch pppstats/pppstats.c to query renamed interfaces without complaint
> +
> +Origin: SUSE
> +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458646
> +Forwarded: no
> +Reviewed-by: Chris Boot <bootc@debian.org>
> +Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
> +---
> + pppd/main.c         | 16 ++++++----------
> + pppd/options.c      |  5 +++++
> + pppd/pppd.8         |  8 +++++++-
> + pppd/pppd.h         | 11 +++++++++++
> + pppd/sys-linux.c    | 15 +++++++++++++++
> + pppstats/pppstats.c | 12 ++++++------
> + 6 files changed, 50 insertions(+), 17 deletions(-)
> +
> +diff --git a/pppd/main.c b/pppd/main.c
> +index 6d50d1bac1d9..f1986ed68d0b 100644
> +--- a/pppd/main.c
> ++++ b/pppd/main.c
> +@@ -124,7 +124,7 @@
> + static const char rcsid[] = RCSID;
> + 
> + /* interface vars */
> +-char ifname[32];		/* Interface name */
> ++char ifname[MAXIFNAMELEN];	/* Interface name */
> + int ifunit;			/* Interface unit number */
> + 
> + struct channel *the_channel;
> +@@ -298,13 +298,6 @@ struct protent *protocols[] = {
> +     NULL
> + };
> + 
> +-/*
> +- * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
> +- */
> +-#if !defined(PPP_DRV_NAME)
> +-#define PPP_DRV_NAME	"ppp"
> +-#endif /* !defined(PPP_DRV_NAME) */
> +-
> + int
> + main(argc, argv)
> +     int argc;
> +@@ -737,8 +730,11 @@ void
> + set_ifunit(iskey)
> +     int iskey;
> + {
> +-    info("Using interface %s%d", PPP_DRV_NAME, ifunit);
> +-    slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
> ++    if (req_ifname[0] != '\0')
> ++	slprintf(ifname, sizeof(ifname), "%s", req_ifname);
> ++    else
> ++	slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
> ++    info("Using interface %s", ifname);
> +     script_setenv("IFNAME", ifname, iskey);
> +     if (iskey) {
> + 	create_pidfile(getpid());	/* write pid to file */
> +diff --git a/pppd/options.c b/pppd/options.c
> +index c06a2b4ad8ed..177488ca6813 100644
> +--- a/pppd/options.c
> ++++ b/pppd/options.c
> +@@ -114,6 +114,7 @@ char	linkname[MAXPATHLEN];	/* logical name for link */
> + bool	tune_kernel;		/* may alter kernel settings */
> + int	connect_delay = 1000;	/* wait this many ms after connect script */
> + int	req_unit = -1;		/* requested interface unit */
> ++char	req_ifname[MAXIFNAMELEN];	/* requested interface name */
> + bool	multilink = 0;		/* Enable multilink operation */
> + char	*bundle_name = NULL;	/* bundle name for multilink */
> + bool	dump_options;		/* print out option values */
> +@@ -284,6 +285,10 @@ option_t general_options[] = {
> +       "PPP interface unit number to use if possible",
> +       OPT_PRIO | OPT_LLIMIT, 0, 0 },
> + 
> ++    { "ifname", o_string, req_ifname,
> ++      "Set PPP interface name",
> ++      OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXIFNAMELEN },
> ++
> +     { "dump", o_bool, &dump_options,
> +       "Print out option values after parsing all options", 1 },
> +     { "dryrun", o_bool, &dryrun,
> +diff --git a/pppd/pppd.8 b/pppd/pppd.8
> +index c508d277df3a..06e945fce998 100644
> +--- a/pppd/pppd.8
> ++++ b/pppd/pppd.8
> +@@ -1079,7 +1079,13 @@ under Linux and FreeBSD 2.2.8 and later.
> + .TP
> + .B unit \fInum
> + Sets the ppp unit number (for a ppp0 or ppp1 etc interface name) for outbound
> +-connections.
> ++connections.  If the unit is already in use a dynamically allocated number will
> ++be used.
> ++.TP
> ++.B ifname \fIstring
> ++Set the ppp interface name for outbound connections.  If the interface name is
> ++already in use, or if the name cannot be used for any other reason, pppd will
> ++terminate.
> + .TP
> + .B unset \fIname
> + Remove a variable from the environment variable for scripts that are
> +diff --git a/pppd/pppd.h b/pppd/pppd.h
> +index 247fa153739b..1a1bf0b99582 100644
> +--- a/pppd/pppd.h
> ++++ b/pppd/pppd.h
> +@@ -80,6 +80,16 @@
> + #define MAXARGS		1	/* max # args to a command */
> + #define MAXNAMELEN	256	/* max length of hostname or name for auth */
> + #define MAXSECRETLEN	256	/* max length of password or secret */
> ++#define MAXIFNAMELEN	32	/* max length of interface name; or use IFNAMSIZ, can we
> ++				   always include net/if.h? */
> ++
> ++/*
> ++ * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
> ++ * Where should PPP_DRV_NAME come from? Do we include it here?
> ++ */
> ++#if !defined(PPP_DRV_NAME)
> ++#define PPP_DRV_NAME	"ppp"
> ++#endif /* !defined(PPP_DRV_NAME) */
> + 
> + /*
> +  * Option descriptor structure.
> +@@ -318,6 +328,7 @@ extern bool	tune_kernel;	/* May alter kernel settings as necessary */
> + extern int	connect_delay;	/* Time to delay after connect script */
> + extern int	max_data_rate;	/* max bytes/sec through charshunt */
> + extern int	req_unit;	/* interface unit number to use */
> ++extern char	req_ifname[MAXIFNAMELEN]; /* interface name to use */
> + extern bool	multilink;	/* enable multilink operation */
> + extern bool	noendpoint;	/* don't send or accept endpt. discrim. */
> + extern char	*bundle_name;	/* bundle name for multilink */
> +diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
> +index b4a435d2a993..b832031f7e26 100644
> +--- a/pppd/sys-linux.c
> ++++ b/pppd/sys-linux.c
> +@@ -643,6 +643,21 @@ static int make_ppp_unit()
> + 	}
> + 	if (x < 0)
> + 		error("Couldn't create new ppp unit: %m");
> ++
> ++	if (x == 0 && req_ifname[0] != '\0') {
> ++		struct ifreq ifr;
> ++		char t[MAXIFNAMELEN];
> ++		memset(&ifr, 0, sizeof(struct ifreq));
> ++		slprintf(t, sizeof(t), "%s%d", PPP_DRV_NAME, ifunit);
> ++		strncpy(ifr.ifr_name, t, IF_NAMESIZE);
> ++		strncpy(ifr.ifr_newname, req_ifname, IF_NAMESIZE);
> ++		x = ioctl(sock_fd, SIOCSIFNAME, &ifr);
> ++		if (x < 0)
> ++		    error("Couldn't rename interface %s to %s: %m", t, req_ifname);
> ++		else
> ++		    info("Renamed interface %s to %s", t, req_ifname);
> ++	}
> ++
> + 	return x;
> + }
> + 
> +diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c
> +index 6367988eb96b..46cb9c24942b 100644
> +--- a/pppstats/pppstats.c
> ++++ b/pppstats/pppstats.c
> +@@ -88,7 +88,6 @@ int	aflag;			/* print absolute values, not deltas */
> + int	dflag;			/* print data rates, not bytes */
> + int	interval, count;
> + int	infinite;
> +-int	unit;
> + int	s;			/* socket or /dev/ppp file descriptor */
> + int	signalled;		/* set if alarm goes off "early" */
> + char	*progname;
> +@@ -449,6 +448,7 @@ main(argc, argv)
> + {
> +     int c;
> + #ifdef STREAMS
> ++    int unit;
> +     char *dev;
> + #endif
> + 
> +@@ -506,11 +506,6 @@ main(argc, argv)
> +     if (argc > 0)
> + 	interface = argv[0];
> + 
> +-    if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
> +-	fprintf(stderr, "%s: invalid interface '%s' specified\n",
> +-		progname, interface);
> +-    }
> +-
> + #ifndef STREAMS
> +     {
> + 	struct ifreq ifr;
> +@@ -535,6 +530,11 @@ main(argc, argv)
> +     }
> + 
> + #else	/* STREAMS */
> ++    if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
> ++	fprintf(stderr, "%s: invalid interface '%s' specified\n",
> ++		progname, interface);
> ++    }
> ++
> + #ifdef __osf__
> +     dev = "/dev/streams/ppp";
> + #else
> +-- 
> +2.15.1
> +
> diff --git a/meta/recipes-connectivity/ppp/ppp_2.4.8.bb b/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
> index f9c60d6bad..231c40f6ca 100644
> --- a/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
> +++ b/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
> @@ -30,6 +30,7 @@ SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \
>             file://fix-CVE-2015-3310.patch \
>             file://0001-ppp-Remove-unneeded-include.patch \
>             file://0001-pppd-Fix-bounds-check-in-EAP-code.patch \
> +           file://0002-pppd-add-ifname-option.patch \
>             "
>  
>  SRC_URI_append_libc-musl = "\
> 
> 
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#140627): https://lists.openembedded.org/g/openembedded-core/message/140627
Mute This Topic: https://lists.openembedded.org/mt/75503520/3617530
Group Owner: openembedded-core+owner@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  [oe-patchwork@oe-patch.openembedded.org]
-=-=-=-=-=-=-=-=-=-=-=-
Mark Deneen July 14, 2020, 5:55 p.m.
Nope.

However, I want to throw this whole thing away.  The patches in question have been merged upstream in 2.4.8, and I don't know how I missed that.  I was building from dunfell, which is at 2.4.7.

Sorry for the noise, everyone.

Best Regards,
Mark Deneen
Saucon Technologies

----- On Jul 14, 2020, at 1:10 PM, Khem Raj raj.khem@gmail.com wrote:

are you aware of any of these platforms being supported by OE ?
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#140629): https://lists.openembedded.org/g/openembedded-core/message/140629
Mute This Topic: https://lists.openembedded.org/mt/75503520/3617530
Group Owner: openembedded-core+owner@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  [oe-patchwork@oe-patch.openembedded.org]
-=-=-=-=-=-=-=-=-=-=-=-