Message ID | 20170511235002.26468-1-tomcherry@google.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Thursday, May 11, 2017, Tom Cherry via Selinux <selinux@tycho.nsa.gov> wrote: > This check is not specific to Android devices. If libselinux were used > with Bionic on a normal Linux system this check would still be needed. > > Signed-off-by: Tom Cherry <tomcherry@google.com <javascript:;>> > --- > libselinux/src/procattr.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c > index ebc0adec..48dd8aff 100644 > --- a/libselinux/src/procattr.c > +++ b/libselinux/src/procattr.c > @@ -22,8 +22,8 @@ static pthread_key_t destructor_key; > static int destructor_key_initialized = 0; > static __thread char destructor_initialized; > > -#ifndef __ANDROID__ > -/* Android declares this in unistd.h and has a definition for it */ > +#ifndef __BIONIC__ > +/* Bionic declares this in unistd.h and has a definition for it */ > static pid_t gettid(void) > { > return syscall(__NR_gettid); > -- > 2.13.0.rc2.291.g57267f2277-goog Ack.. thanks for this. There might be other places I used Android when I should have used bionic
don't feel bad: the Android tree has the same problem --- even bionic itself didn't always get this right :-) we're spotting these now because we're actually trying to use bionic on non-Android Linux too. On Thu, May 11, 2017 at 5:18 PM, William Roberts <bill.c.roberts@gmail.com> wrote: > On Thursday, May 11, 2017, Tom Cherry via Selinux <selinux@tycho.nsa.gov> > wrote: >> >> This check is not specific to Android devices. If libselinux were used >> with Bionic on a normal Linux system this check would still be needed. >> >> Signed-off-by: Tom Cherry <tomcherry@google.com> >> --- >> libselinux/src/procattr.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c >> index ebc0adec..48dd8aff 100644 >> --- a/libselinux/src/procattr.c >> +++ b/libselinux/src/procattr.c >> @@ -22,8 +22,8 @@ static pthread_key_t destructor_key; >> static int destructor_key_initialized = 0; >> static __thread char destructor_initialized; >> >> -#ifndef __ANDROID__ >> -/* Android declares this in unistd.h and has a definition for it */ >> +#ifndef __BIONIC__ >> +/* Bionic declares this in unistd.h and has a definition for it */ >> static pid_t gettid(void) >> { >> return syscall(__NR_gettid); >> -- >> 2.13.0.rc2.291.g57267f2277-goog > > > > Ack.. thanks for this. There might be other places I used Android when I > should have used bionic > > > > > -- > Respectfully, > > William C Roberts > >
On Thu, 2017-05-11 at 16:50 -0700, Tom Cherry via Selinux wrote: > This check is not specific to Android devices. If libselinux were > used > with Bionic on a normal Linux system this check would still be > needed. > > Signed-off-by: Tom Cherry <tomcherry@google.com> Thanks, applied. This was actually switched from ANDROID to _ANDROID__ by nnk in 044f6ef104c8a9d8f42faa8756e71a0525198f5b. We don't appear to have any other uses of __ANDROID__, but we do have a number of uses of ANDROID. Offhand though these other uses of ANDROID don't appear to be related to bionic but instead reflect differences in SELinux userspace integration in Android vs GNU/Linux. If however your bionic/Linux system integrates SELinux support in an Android-like manner (e.g. kernel policy file is /sepolicy, no /etc/selinux/config, ...), then you might need to generalize those as well. > --- > libselinux/src/procattr.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c > index ebc0adec..48dd8aff 100644 > --- a/libselinux/src/procattr.c > +++ b/libselinux/src/procattr.c > @@ -22,8 +22,8 @@ static pthread_key_t destructor_key; > static int destructor_key_initialized = 0; > static __thread char destructor_initialized; > > -#ifndef __ANDROID__ > -/* Android declares this in unistd.h and has a definition for it */ > +#ifndef __BIONIC__ > +/* Bionic declares this in unistd.h and has a definition for it */ > static pid_t gettid(void) > { > return syscall(__NR_gettid);
On Fri, May 12, 2017 at 6:22 AM, Stephen Smalley <sds@tycho.nsa.gov> wrote: > On Thu, 2017-05-11 at 16:50 -0700, Tom Cherry via Selinux wrote: >> This check is not specific to Android devices. If libselinux were >> used >> with Bionic on a normal Linux system this check would still be >> needed. >> >> Signed-off-by: Tom Cherry <tomcherry@google.com> > > Thanks, applied. This was actually switched from ANDROID to _ANDROID__ > by nnk in 044f6ef104c8a9d8f42faa8756e71a0525198f5b. We don't appear > to have any other uses of __ANDROID__, but we do have a number of uses > of ANDROID. Offhand though these other uses of ANDROID don't appear to > be related to bionic but instead reflect differences in SELinux > userspace integration in Android vs GNU/Linux. If however your > bionic/Linux system integrates SELinux support in an Android-like > manner (e.g. kernel policy file is /sepolicy, no /etc/selinux/config, > ...), then you might need to generalize those as well. Thanks! I took a look at the other ANDROID ifdefs in the code and I'm not sure how or if they would need to be changed. This change is needed to get libselinux building with bionic on the host which is just the first step. > >> --- >> libselinux/src/procattr.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c >> index ebc0adec..48dd8aff 100644 >> --- a/libselinux/src/procattr.c >> +++ b/libselinux/src/procattr.c >> @@ -22,8 +22,8 @@ static pthread_key_t destructor_key; >> static int destructor_key_initialized = 0; >> static __thread char destructor_initialized; >> >> -#ifndef __ANDROID__ >> -/* Android declares this in unistd.h and has a definition for it */ >> +#ifndef __BIONIC__ >> +/* Bionic declares this in unistd.h and has a definition for it */ >> static pid_t gettid(void) >> { >> return syscall(__NR_gettid);
On Fri, May 12, 2017 at 11:01 AM, Tom Cherry <tomcherry@google.com> wrote: > On Fri, May 12, 2017 at 6:22 AM, Stephen Smalley <sds@tycho.nsa.gov> > wrote: > > On Thu, 2017-05-11 at 16:50 -0700, Tom Cherry via Selinux wrote: > >> This check is not specific to Android devices. If libselinux were > >> used > >> with Bionic on a normal Linux system this check would still be > >> needed. > >> > >> Signed-off-by: Tom Cherry <tomcherry@google.com> > > > > Thanks, applied. This was actually switched from ANDROID to _ANDROID__ > > by nnk in 044f6ef104c8a9d8f42faa8756e71a0525198f5b. We don't appear > > to have any other uses of __ANDROID__, but we do have a number of uses > > of ANDROID. Offhand though these other uses of ANDROID don't appear to > > be related to bionic but instead reflect differences in SELinux > > userspace integration in Android vs GNU/Linux. If however your > > bionic/Linux system integrates SELinux support in an Android-like > > manner (e.g. kernel policy file is /sepolicy, no /etc/selinux/config, > > ...), then you might need to generalize those as well. > > Thanks! I took a look at the other ANDROID ifdefs in the code and I'm not > sure > how or if they would need to be changed. This change is needed to get > libselinux building with bionic on the host which is just the first step. > Thanks for checking, and I am glad (and surprised) this was the only issue to get it to build for a host using bionic. > > > > >> --- > >> libselinux/src/procattr.c | 4 ++-- > >> 1 file changed, 2 insertions(+), 2 deletions(-) > >> > >> diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c > >> index ebc0adec..48dd8aff 100644 > >> --- a/libselinux/src/procattr.c > >> +++ b/libselinux/src/procattr.c > >> @@ -22,8 +22,8 @@ static pthread_key_t destructor_key; > >> static int destructor_key_initialized = 0; > >> static __thread char destructor_initialized; > >> > >> -#ifndef __ANDROID__ > >> -/* Android declares this in unistd.h and has a definition for it */ > >> +#ifndef __BIONIC__ > >> +/* Bionic declares this in unistd.h and has a definition for it */ > >> static pid_t gettid(void) > >> { > >> return syscall(__NR_gettid); >
diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c index ebc0adec..48dd8aff 100644 --- a/libselinux/src/procattr.c +++ b/libselinux/src/procattr.c @@ -22,8 +22,8 @@ static pthread_key_t destructor_key; static int destructor_key_initialized = 0; static __thread char destructor_initialized; -#ifndef __ANDROID__ -/* Android declares this in unistd.h and has a definition for it */ +#ifndef __BIONIC__ +/* Bionic declares this in unistd.h and has a definition for it */ static pid_t gettid(void) { return syscall(__NR_gettid);
This check is not specific to Android devices. If libselinux were used with Bionic on a normal Linux system this check would still be needed. Signed-off-by: Tom Cherry <tomcherry@google.com> --- libselinux/src/procattr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)