From: Mauro Carvalho Chehab <maurochehab@gmail.com>
To: Colin Minihan <colin.minihan@gmail.com>
Cc: Andy Walls <awalls@md.metrocast.net>, linux-media@vger.kernel.org
Subject: Re: Build Failure
Date: Sat, 30 Apr 2011 22:28:56 -0300 [thread overview]
Message-ID: <4DBCB758.2000303@gmail.com> (raw)
In-Reply-To: <1304179815.2434.10.camel@localhost>
Em 30-04-2011 13:10, Andy Walls escreveu:
> On Sat, 2011-04-30 at 10:31 -0400, Colin Minihan wrote:
>> On Ubuntu 10.04 attempting to run
>>
>> git clone git://linuxtv.org/media_build.git
>> cd media_build
>> ./check_needs.pl
>> make -C linux/ download
>> make -C linux/ untar
>> make stagingconfig
>> make
>>
>> results in the following failure
>> ...
>> CC [M] /home/colm/media_build/v4l/lirc_zilog.o
>> /home/colm/media_build/v4l/lirc_zilog.c: In function 'destroy_rx_kthread':
>> /home/colm/media_build/v4l/lirc_zilog.c:238: error: implicit
>> declaration of function 'IS_ERR_OR_NULL'
>
> Well, IS_ERR_OR_NULL() went into the kernel in December 2009:
>
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=603c4ba96be998a8dd7a6f9b23681c49acdf4b64
>
> so it should be in kernel version 2.6.33 and later.
This is defined at include/linux/err.h as:
#define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
static inline long __must_check IS_ERR_OR_NULL(const void *ptr)
{
return !ptr || IS_ERR_VALUE((unsigned long)ptr);
}
>
> If you don't want to generate a patch for the media_build backward
> compatability build system, you can probably just patch your kernel
> header file or trivially hack the function it into
>
> drivers/staging/lirc/lirc_zilog.c
>
> to get past your current build error. But I suspect you'll run into
> more errors. When I make changes to a module (like lirc_zilog.c), I
> tend to use the latest kernel interfaces at the time of the changes.
>
> If you don't need lirc_zilog.ko built, then configure the build system
> to not build the module.
To make it work, it is probably as simple as adding this into v4l/compat.h:
#if NEED_IS_ERR_OR_NULL
#define IS_ERR_OR_NULL(ptr) (!(ptr) || IS_ERR_VALUE((unsigned long)(ptr)))
#endif
And:
check_file_for_func("include/linux/err.h", "IS_ERR_OR_NULL", "NEED_IS_ERR_OR_NULL");
at v4l/scripts/make_config_compat.pl,
as the enclosed (not tested) patch.
Please test it and, if it wors, ping us for its inclusion at media_tree.git. Otherwise,
feel free to fix it and submit us the fix.
Thanks!
Mauro
---
Add backward support for IS_ERR_OR_NULL
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/v4l/compat.h b/v4l/compat.h
index bc8d71f..9dbe54f 100644
--- a/v4l/compat.h
+++ b/v4l/compat.h
@@ -796,4 +796,8 @@ static inline int snd_ctl_enum_info(struct snd_ctl_elem_info *info, unsigned int
#define usleep_range(min, max) msleep(min/1000)
#endif
+#if NEED_IS_ERR_OR_NULL
+#define IS_ERR_OR_NULL(ptr) (!(ptr) || IS_ERR_VALUE((unsigned long)(ptr)))
+#endif
+
#endif /* _COMPAT_H */
diff --git a/v4l/scripts/make_config_compat.pl b/v4l/scripts/make_config_compat.pl
index a426134..01f6c30 100755
--- a/v4l/scripts/make_config_compat.pl
+++ b/v4l/scripts/make_config_compat.pl
@@ -492,6 +492,7 @@ sub check_other_dependencies()
check_file_for_func("include/sound/control.h", "snd_ctl_enum_info", "NEED_SND_CTL_ENUM_INFO");
check_file_for_func("include/linux/sysfs.h", "sysfs_attr_init", "NEED_SYSFS_ATTR_INIT");
check_file_for_func("include/linux/delay.h", "usleep_range", "NEED_USLEEP_RANGE");
+ check_file_for_func("include/linux/err.h", "IS_ERR_OR_NULL", "NEED_IS_ERR_OR_NULL");
}
# Do the basic rules
next prev parent reply other threads:[~2011-05-01 1:29 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <BANLkTikBm0gmNd8oQ6CN+cAEbYhWEGvWPA@mail.gmail.com>
2011-04-30 14:31 ` Build Failure Colin Minihan
2011-04-30 16:10 ` Andy Walls
2011-05-01 1:28 ` Mauro Carvalho Chehab [this message]
2011-05-01 11:50 ` Vincent McIntyre
2012-11-14 9:15 Build failure Andreas Müller
2012-11-14 9:30 ` Andreas Müller
-- strict thread matches above, loose matches on Subject: below --
2011-01-24 21:36 Gary Thomas
2011-01-24 21:52 ` Tom Zanussi
2011-01-24 23:05 ` Gary Thomas
2011-01-25 0:00 ` Tian, Kevin
2011-01-25 22:51 ` Richard Purdie
2010-08-05 5:32 [linux-next] build failure divya
2010-08-05 16:48 ` John Fastabend
2009-02-18 22:42 Build failure jonr
2009-02-18 23:47 ` Jeremy Fitzhardinge
2009-02-19 0:50 ` jonr
2008-07-30 9:29 build failure Christoph Egger
2008-07-30 9:49 ` Keir Fraser
2008-07-30 11:01 ` Christoph Egger
2007-06-08 10:24 Build failure Steinar H. Gunderson
2007-06-08 10:47 ` Steinar H. Gunderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DBCB758.2000303@gmail.com \
--to=maurochehab@gmail.com \
--cc=awalls@md.metrocast.net \
--cc=colin.minihan@gmail.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.