Message ID | 2121451356.93690.1344518764022.JavaMail.root@neratec.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 09/08/12 22:59, Andy Gospodarek wrote: > On Aug 9, 2012 9:26 AM, "Zefir Kurtisi"<zefir.kurtisi@neratec.com> wrote: >> >> On 08/09/2012 06:40 AM, Andy Gospodarek wrote: >>> This patch allows me to compile and load the latest compat modules on >>> RHEL6.3. Users of compat on RHEL6 should note that you should set >>> CONFIG_COMPAT_KFIFO=n as those bits are not needed at all. >>> >>> [...] >>> >>> diff --git a/include/linux/compat-2.6.36.h > b/include/linux/compat-2.6.36.h >>> index 56d5961..09e4b6f 100644 >>> --- a/include/linux/compat-2.6.36.h >>> +++ b/include/linux/compat-2.6.36.h >>> @@ -98,6 +98,8 @@ struct pm_qos_request_list { >>> * Dummy printk for disabled debugging statements to use whilst > maintaining >>> * gcc's format and side-effect checking. >>> */ >>> +/* mask no_printk as RHEL6 backports this */ >>> +#define no_printk(...) compat_no_printk(...) >>> static inline __attribute__ ((format (printf, 1, 2))) >>> int no_printk(const char *s, ...) { return 0; } >>> >>> [...] >> >> This at least breaks compilation on 2.6.35-22 with gcc throwing a >> compat-2.6.36.h:104: error: ISO C requires a named argument before ‘...’ >> > > Actually that might be due to the fact that I chose to use no_printk(...) > rather than no_printk(a,...). > > What version of gcc are you using? > >> It looks like no_printk() needs to be renamed to compat_no_printk() >> to make it work as intended. >> >> This is a systematic mistake at several sections of this patch, where >> the original function needs to be prefixed by 'compat_' to match the >> related macro. >> >> >> --- >> diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h >> index 8b02260..b6757c3 100644 >> --- a/include/linux/compat-2.6.36.h >> +++ b/include/linux/compat-2.6.36.h >> @@ -101,7 +101,7 @@ struct pm_qos_request_list { >> /* mask no_printk as RHEL6 backports this */ >> #define no_printk(...) compat_no_printk(...) >> static inline __attribute__ ((format (printf, 1, 2))) >> -int no_printk(const char *s, ...) { return 0; } >> +int compat_no_printk(const char *s, ...) { return 0; } >> >> #ifndef alloc_workqueue >> #define alloc_workqueue(name, flags, max_active) > __create_workqueue(name, flags, max_active, 0) > Hi Andy, Zefir, Thanks for these patches, this certainly moves us forward (the compat components do now compile on RHEL6.3); my build then errors out on drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc (I should apologise and state I'm trying to build the 3.5-3 stable tarball on RHEL6.3). Here are the errors, which I believe are related to the above no_printk() issue: CC [M] /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.o /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_cdc_msg': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:114: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_cdc_cmplt': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:134: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_cdc_query_dcmd': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:157: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:158: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:186: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:203: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_cdc_set_dcmd': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:238: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:239: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:265: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_dcmd': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:290: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:295: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:301: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:306: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_hdrpush': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:367: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_hdrpull': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:392: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:397: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:406: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:412: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:418: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:390: warning: unused variable 'drvr' /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_attach': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:441: error: expected expression before '...' token /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c: In function 'brcmf_proto_init': /home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c:468: error: expected expression before '...' token make[5]: *** [/home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.o] Error 1 make[4]: *** [/home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211/brcmfmac] Error 2 make[3]: *** [/home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless/brcm80211] Error 2 make[2]: *** [/home/phil/rpmbuild/BUILD/compat-wireless-3.5-3/drivers/net/wireless] Error 2 make[1]: *** [_module_/home/phil/rpmbuild/BUILD/compat-wireless-3.5-3] Error 2 make[1]: Leaving directory `/usr/src/kernels/2.6.32-279.el6.x86_64' make: *** [modules] Error 2 The only way I have found to work around this at the moment is to block out the offending no_printk() for RHEL6.3: /* * Dummy printk for disabled debugging statements to use whilst maintaining * gcc's format and side-effect checking. */ /* mask no_printk as RHEL6.3 backports this */ #if (RHEL_MINOR < 3) static inline __attribute__ ((format (printf, 1, 2))) int no_printk(const char *s, ...) { return 0; } #endif /* (RHEL_MINOR < 3) */ Not a very elegant solution but at least the code does now compile for me on RHEL6.3, so it's progress of sorts. Regards, Phil -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Aug 9, 2012 at 6:26 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote: > @@ -101,7 +101,7 @@ struct pm_qos_request_list { > /* mask no_printk as RHEL6 backports this */ > #define no_printk(...) compat_no_printk(...) > static inline __attribute__ ((format (printf, 1, 2))) > -int no_printk(const char *s, ...) { return 0; } > +int compat_no_printk(const char *s, ...) { return 0; } I merged this in. Andy can you review your other changes as Zefir points out? mcgrof@frijol ~/compat (git::master)$ gcc --version gcc (Debian 4.7.1-2) 4.7.1 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. I suppose we should get ckmake to spit out the version of gcc onto the report. Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Aug 9, 2012 at 9:27 PM, Luis R. Rodriguez <mcgrof@frijolero.org> wrote: > On Thu, Aug 9, 2012 at 6:26 AM, Zefir Kurtisi <zefir.kurtisi@neratec.com> wrote: >> @@ -101,7 +101,7 @@ struct pm_qos_request_list { >> /* mask no_printk as RHEL6 backports this */ >> #define no_printk(...) compat_no_printk(...) >> static inline __attribute__ ((format (printf, 1, 2))) >> -int no_printk(const char *s, ...) { return 0; } >> +int compat_no_printk(const char *s, ...) { return 0; } > > I merged this in. Andy can you review your other changes as Zefir points out? Yes, I will check it out tomorrow. > mcgrof@frijol ~/compat (git::master)$ gcc --version > gcc (Debian 4.7.1-2) 4.7.1 > Copyright (C) 2012 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > I suppose we should get ckmake to spit out the version of gcc onto the report. > > Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 08/09/2012 11:59 PM, Andy Gospodarek wrote: > On Aug 9, 2012 9:26 AM, "Zefir Kurtisi" <zefir.kurtisi@neratec.com >> [...] >> This at least breaks compilation on 2.6.35-22 with gcc throwing a >> compat-2.6.36.h:104: error: ISO C requires a named argument before ‘...’ >> > > Actually that might be due to the fact that I chose to use > no_printk(...) rather than no_printk(a,...). > > What version of gcc are you using? > Since you already resolved the issue, just FYI: I'm using gcc (Ubuntu/Linaro 4.4.4-14ubuntu5.1) 4.4.5 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 08/09/2012 03:26 PM, Zefir Kurtisi wrote: > On 08/09/2012 06:40 AM, Andy Gospodarek wrote: >> This patch allows me to compile and load the latest compat modules on >> RHEL6.3. Users of compat on RHEL6 should note that you should set >> CONFIG_COMPAT_KFIFO=n as those bits are not needed at all. >> >> [...] >> >> diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h >> index 56d5961..09e4b6f 100644 >> --- a/include/linux/compat-2.6.36.h >> +++ b/include/linux/compat-2.6.36.h >> @@ -98,6 +98,8 @@ struct pm_qos_request_list { >> * Dummy printk for disabled debugging statements to use whilst maintaining >> * gcc's format and side-effect checking. >> */ >> +/* mask no_printk as RHEL6 backports this */ >> +#define no_printk(...) compat_no_printk(...) >> static inline __attribute__ ((format (printf, 1, 2))) >> int no_printk(const char *s, ...) { return 0; } >> >> [...] > > This at least breaks compilation on 2.6.35-22 with gcc throwing a > compat-2.6.36.h:104: error: ISO C requires a named argument before ‘...’ > > It looks like no_printk() needs to be renamed to compat_no_printk() > to make it work as intended. > > This is a systematic mistake at several sections of this patch, where > the original function needs to be prefixed by 'compat_' to match the > related macro. > > > --- > diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h > index 8b02260..b6757c3 100644 > --- a/include/linux/compat-2.6.36.h > +++ b/include/linux/compat-2.6.36.h > @@ -101,7 +101,7 @@ struct pm_qos_request_list { > /* mask no_printk as RHEL6 backports this */ > #define no_printk(...) compat_no_printk(...) > static inline __attribute__ ((format (printf, 1, 2))) > -int no_printk(const char *s, ...) { return 0; } > +int compat_no_printk(const char *s, ...) { return 0; } > > #ifndef alloc_workqueue > #define alloc_workqueue(name, flags, max_active) __create_workqueue(name, flags, max_active, 0) With this patch applied it works better, but I still get this error in drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c. brcmfmac has this line: #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__) so brcmf_dbg gets no_printk and not compat_no_printk. Why isn't "ifndef CONFIG_COMPAT_RHEL_6_3" put around the declaration of no_printk()? Hauke -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Aug 10, 2012 at 1:18 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote: > On 08/09/2012 03:26 PM, Zefir Kurtisi wrote: >> On 08/09/2012 06:40 AM, Andy Gospodarek wrote: >>> This patch allows me to compile and load the latest compat modules on >>> RHEL6.3. Users of compat on RHEL6 should note that you should set >>> CONFIG_COMPAT_KFIFO=n as those bits are not needed at all. >>> >>> [...] >>> >>> diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h >>> index 56d5961..09e4b6f 100644 >>> --- a/include/linux/compat-2.6.36.h >>> +++ b/include/linux/compat-2.6.36.h >>> @@ -98,6 +98,8 @@ struct pm_qos_request_list { >>> * Dummy printk for disabled debugging statements to use whilst maintaining >>> * gcc's format and side-effect checking. >>> */ >>> +/* mask no_printk as RHEL6 backports this */ >>> +#define no_printk(...) compat_no_printk(...) >>> static inline __attribute__ ((format (printf, 1, 2))) >>> int no_printk(const char *s, ...) { return 0; } >>> >>> [...] >> >> This at least breaks compilation on 2.6.35-22 with gcc throwing a >> compat-2.6.36.h:104: error: ISO C requires a named argument before ‘...’ >> >> It looks like no_printk() needs to be renamed to compat_no_printk() >> to make it work as intended. >> >> This is a systematic mistake at several sections of this patch, where >> the original function needs to be prefixed by 'compat_' to match the >> related macro. >> >> >> --- >> diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h >> index 8b02260..b6757c3 100644 >> --- a/include/linux/compat-2.6.36.h >> +++ b/include/linux/compat-2.6.36.h >> @@ -101,7 +101,7 @@ struct pm_qos_request_list { >> /* mask no_printk as RHEL6 backports this */ >> #define no_printk(...) compat_no_printk(...) >> static inline __attribute__ ((format (printf, 1, 2))) >> -int no_printk(const char *s, ...) { return 0; } >> +int compat_no_printk(const char *s, ...) { return 0; } >> >> #ifndef alloc_workqueue >> #define alloc_workqueue(name, flags, max_active) __create_workqueue(name, flags, max_active, 0) > > With this patch applied it works better, but I still get this error in > drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c. > > brcmfmac has this line: > > #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__) > > so brcmf_dbg gets no_printk and not compat_no_printk. > > Why isn't "ifndef CONFIG_COMPAT_RHEL_6_3" put around the declaration of > no_printk()? > > Hauke Did you try the patch I posted last night that has the updated define for no_printk()? I saw the same error until I applied that patch. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Aug 10, 2012 at 11:28 AM, Andy Gospodarek <andy@greyhouse.net> wrote: > Did you try the patch I posted last night that has the updated define > for no_printk()? I saw the same error until I applied that patch. Andy, can you post a new patch on a new thread that is rebased on top of the latest compat.git master and without putting stuff above the patch ? Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Aug 10, 2012 at 3:50 PM, Luis R. Rodriguez <mcgrof@frijolero.org> wrote: > On Fri, Aug 10, 2012 at 11:28 AM, Andy Gospodarek <andy@greyhouse.net> wrote: >> Did you try the patch I posted last night that has the updated define >> for no_printk()? I saw the same error until I applied that patch. > > Andy, can you post a new patch on a new thread that is rebased on top > of the latest compat.git master and without putting stuff above the > patch ? > > Luis Yes I can. You caught me at just the right time as my test build of compat-wireless-3.5-3 just finished. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 08/10/2012 09:51 PM, Andy Gospodarek wrote: > On Fri, Aug 10, 2012 at 3:50 PM, Luis R. Rodriguez <mcgrof@frijolero.org> wrote: >> On Fri, Aug 10, 2012 at 11:28 AM, Andy Gospodarek <andy@greyhouse.net> wrote: >>> Did you try the patch I posted last night that has the updated define >>> for no_printk()? I saw the same error until I applied that patch. >> >> Andy, can you post a new patch on a new thread that is rebased on top >> of the latest compat.git master and without putting stuff above the >> patch ? >> >> Luis > > Yes I can. You caught me at just the right time as my test build of > compat-wireless-3.5-3 just finished. I just tried "[PATCH] compat: fixup error in no_printk definition" and now this error does not occur in my tests any more. Thanks for the patch. Hauke -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h index 8b02260..b6757c3 100644 --- a/include/linux/compat-2.6.36.h +++ b/include/linux/compat-2.6.36.h @@ -101,7 +101,7 @@ struct pm_qos_request_list { /* mask no_printk as RHEL6 backports this */ #define no_printk(...) compat_no_printk(...) static inline __attribute__ ((format (printf, 1, 2))) -int no_printk(const char *s, ...) { return 0; } +int compat_no_printk(const char *s, ...) { return 0; } #ifndef alloc_workqueue #define alloc_workqueue(name, flags, max_active) __create_workqueue(name, flags, max_active, 0)