| Submitter | Matthew McClintock |
|---|---|
| Date | Aug. 20, 2012, 6:49 p.m. |
| Message ID | <1345488563-30901-1-git-send-email-msm@freescale.com> |
| Download | mbox | patch |
| Permalink | /patch/34973/ |
| State | New |
| Headers | show |
Comments
On Mon, Aug 20, 2012 at 11:49 AM, Matthew McClintock <msm@freescale.com> wrote: > Keep in mind this is ONLY effecting the native builds and not what is > being shipped in the root file system. s/effect/affect/ ;)
On Mon, 2012-08-20 at 13:49 -0500, Matthew McClintock wrote: > kmod will fail to build with the following error because O_CLOEXEC is > not defined: > > | libkmod/libkmod-module.c: In function 'kmod_module_get_initstate': > | libkmod/libkmod-module.c:1640: error: 'O_CLOEXEC' undeclared (first use in this function) > | libkmod/libkmod-module.c:1640: error: (Each undeclared identifier is reported only once > | libkmod/libkmod-module.c:1640: error: for each function it appears in.) > | libkmod/libkmod-module.c: In function 'kmod_module_get_refcnt': > | libkmod/libkmod-module.c:1754: error: 'O_CLOEXEC' undeclared (first use in this function) > | libkmod/libkmod-module.c: In function 'kmod_module_get_sections': > | libkmod/libkmod-module.c:1913: error: 'O_CLOEXEC' undeclared (first use in this function) > | libkmod/libkmod-file.c: In function 'kmod_file_open': > | libkmod/libkmod-file.c:282: error: 'O_CLOEXEC' undeclared (first use in this function) > | libkmod/libkmod-file.c:282: error: (Each undeclared identifier is reported only once > | libkmod/libkmod-file.c:282: error: for each function it appears in.) > > Since we are only using kmod-native for depmod, and it's a non-threaded > user of this libary being built this should be safe to override O_CLOEXEC. > > Keep in mind this is ONLY effecting the native builds and not what is > being shipped in the root file system. > > Signed-off-by: Matthew McClintock <msm@freescale.com> > --- > meta/recipes-kernel/kmod/kmod-native_git.bb | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb > index 96de8b8..3c5e3c3 100644 > --- a/meta/recipes-kernel/kmod/kmod-native_git.bb > +++ b/meta/recipes-kernel/kmod/kmod-native_git.bb > @@ -4,7 +4,7 @@ > require kmod.inc > inherit native > > -PR = "${INC_PR}.0" > +PR = "${INC_PR}.1" > > do_install_append (){ > for tool in depmod insmod lsmod modinfo modprobe rmmod > @@ -12,3 +12,9 @@ do_install_append (){ > ln -s kmod ${D}${bindir}/$tool > done > } > + > +do_compile_append (){ > + if ! grep O_CLOEXEC -r ${includedir_native}/bits/fcntl.h; then > + export CFLAGS="$CFLAGS -D O_CLOEXEC=0" > + fi > +} A compile append would execute after the compile. Isn't this after the point you need the change? Cheers, Richard
On Tue, Aug 21, 2012 at 5:49 AM, Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > On Mon, 2012-08-20 at 13:49 -0500, Matthew McClintock wrote: >> kmod will fail to build with the following error because O_CLOEXEC is >> not defined: >> >> | libkmod/libkmod-module.c: In function 'kmod_module_get_initstate': >> | libkmod/libkmod-module.c:1640: error: 'O_CLOEXEC' undeclared (first use in this function) >> | libkmod/libkmod-module.c:1640: error: (Each undeclared identifier is reported only once >> | libkmod/libkmod-module.c:1640: error: for each function it appears in.) >> | libkmod/libkmod-module.c: In function 'kmod_module_get_refcnt': >> | libkmod/libkmod-module.c:1754: error: 'O_CLOEXEC' undeclared (first use in this function) >> | libkmod/libkmod-module.c: In function 'kmod_module_get_sections': >> | libkmod/libkmod-module.c:1913: error: 'O_CLOEXEC' undeclared (first use in this function) >> | libkmod/libkmod-file.c: In function 'kmod_file_open': >> | libkmod/libkmod-file.c:282: error: 'O_CLOEXEC' undeclared (first use in this function) >> | libkmod/libkmod-file.c:282: error: (Each undeclared identifier is reported only once >> | libkmod/libkmod-file.c:282: error: for each function it appears in.) >> >> Since we are only using kmod-native for depmod, and it's a non-threaded >> user of this libary being built this should be safe to override O_CLOEXEC. >> >> Keep in mind this is ONLY effecting the native builds and not what is >> being shipped in the root file system. >> >> Signed-off-by: Matthew McClintock <msm@freescale.com> >> --- >> meta/recipes-kernel/kmod/kmod-native_git.bb | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb >> index 96de8b8..3c5e3c3 100644 >> --- a/meta/recipes-kernel/kmod/kmod-native_git.bb >> +++ b/meta/recipes-kernel/kmod/kmod-native_git.bb >> @@ -4,7 +4,7 @@ >> require kmod.inc >> inherit native >> >> -PR = "${INC_PR}.0" >> +PR = "${INC_PR}.1" >> >> do_install_append (){ >> for tool in depmod insmod lsmod modinfo modprobe rmmod >> @@ -12,3 +12,9 @@ do_install_append (){ >> ln -s kmod ${D}${bindir}/$tool >> done >> } >> + >> +do_compile_append (){ >> + if ! grep O_CLOEXEC -r ${includedir_native}/bits/fcntl.h; then >> + export CFLAGS="$CFLAGS -D O_CLOEXEC=0" >> + fi >> +} > > > A compile append would execute after the compile. Isn't this after the > point you need the change? Yes, and this makes me wonder what I tested... Anyways, v2 fixed up and sent. I also needed to export the CFLAGS even earlier so they got picked up correctly. -M
Patch
diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb index 96de8b8..3c5e3c3 100644 --- a/meta/recipes-kernel/kmod/kmod-native_git.bb +++ b/meta/recipes-kernel/kmod/kmod-native_git.bb @@ -4,7 +4,7 @@ require kmod.inc inherit native -PR = "${INC_PR}.0" +PR = "${INC_PR}.1" do_install_append (){ for tool in depmod insmod lsmod modinfo modprobe rmmod @@ -12,3 +12,9 @@ do_install_append (){ ln -s kmod ${D}${bindir}/$tool done } + +do_compile_append (){ + if ! grep O_CLOEXEC -r ${includedir_native}/bits/fcntl.h; then + export CFLAGS="$CFLAGS -D O_CLOEXEC=0" + fi +}
kmod will fail to build with the following error because O_CLOEXEC is not defined: | libkmod/libkmod-module.c: In function 'kmod_module_get_initstate': | libkmod/libkmod-module.c:1640: error: 'O_CLOEXEC' undeclared (first use in this function) | libkmod/libkmod-module.c:1640: error: (Each undeclared identifier is reported only once | libkmod/libkmod-module.c:1640: error: for each function it appears in.) | libkmod/libkmod-module.c: In function 'kmod_module_get_refcnt': | libkmod/libkmod-module.c:1754: error: 'O_CLOEXEC' undeclared (first use in this function) | libkmod/libkmod-module.c: In function 'kmod_module_get_sections': | libkmod/libkmod-module.c:1913: error: 'O_CLOEXEC' undeclared (first use in this function) | libkmod/libkmod-file.c: In function 'kmod_file_open': | libkmod/libkmod-file.c:282: error: 'O_CLOEXEC' undeclared (first use in this function) | libkmod/libkmod-file.c:282: error: (Each undeclared identifier is reported only once | libkmod/libkmod-file.c:282: error: for each function it appears in.) Since we are only using kmod-native for depmod, and it's a non-threaded user of this libary being built this should be safe to override O_CLOEXEC. Keep in mind this is ONLY effecting the native builds and not what is being shipped in the root file system. Signed-off-by: Matthew McClintock <msm@freescale.com> --- meta/recipes-kernel/kmod/kmod-native_git.bb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)