Re: [FFmpeg-devel] [PATCH] mips/asmdefs: use asm/sgidefs.h header on linux
On Sat, Mar 07, 2015 at 10:13:23AM +, James Cowgill wrote: > Unfortunately android < api 21 (lollipop) doesn't have the sgidefs.h header, > but the linux kernel does in asm/sgidefs.h. So use that header if we can. > > Change _ABI64 to _MIPS_SIM_ABI64 which is defined in both headers. > > Signed-off-by: James Cowgill > --- > libavutil/mips/asmdefs.h | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/libavutil/mips/asmdefs.h b/libavutil/mips/asmdefs.h > index 4d2922c..3660e98 100644 > --- a/libavutil/mips/asmdefs.h > +++ b/libavutil/mips/asmdefs.h > @@ -27,9 +27,13 @@ > #ifndef AVCODEC_MIPS_ASMDEFS_H > #define AVCODEC_MIPS_ASMDEFS_H > > +#ifdef __linux__ > +#include > +#else > #include > +#endif is it possible to to test for the header in configure instead of testing for __linux__ we test for most other headers in configure see, for example "check_header asm/types.h" / "#if HAVE_ASM_TYPES_H" [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB No human being will ever know the Truth, for even if they happen to say it by chance, they would not even known they had done so. -- Xenophanes signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] mips/asmdefs: use asm/sgidefs.h header on linux
On Sat, 7 Mar 2015 10:13:23 + James Cowgill wrote: > Unfortunately android < api 21 (lollipop) doesn't have the sgidefs.h header, > but the linux kernel does in asm/sgidefs.h. So use that header if we can. > > Change _ABI64 to _MIPS_SIM_ABI64 which is defined in both headers. What does this header contain? Requiring kernel headers for anything but Linux specific syscalls or for building kernel modules is incredibly broken. And __linux__ is of course completely out of the question. Just because it's Linux, the libc doesn't necessarily provide kernel headers. > Signed-off-by: James Cowgill > --- > libavutil/mips/asmdefs.h | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/libavutil/mips/asmdefs.h b/libavutil/mips/asmdefs.h > index 4d2922c..3660e98 100644 > --- a/libavutil/mips/asmdefs.h > +++ b/libavutil/mips/asmdefs.h > @@ -27,9 +27,13 @@ > #ifndef AVCODEC_MIPS_ASMDEFS_H > #define AVCODEC_MIPS_ASMDEFS_H > > +#ifdef __linux__ > +#include > +#else > #include > +#endif > > -#if _MIPS_SIM == _ABI64 > +#if _MIPS_SIM == _MIPS_SIM_ABI64 > # define PTRSIZE" 8 " > # define PTRLOG " 3 " > # define PTR_ADDU "daddu " ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] mips/asmdefs: use asm/sgidefs.h header on linux
On Sat, 2015-03-07 at 18:06 +0100, wm4 wrote: > On Sat, 7 Mar 2015 10:13:23 + > James Cowgill wrote: > > > Unfortunately android < api 21 (lollipop) doesn't have the sgidefs.h header, > > but the linux kernel does in asm/sgidefs.h. So use that header if we can. > > > > Change _ABI64 to _MIPS_SIM_ABI64 which is defined in both headers. > > What does this header contain? Requiring kernel headers for anything > but Linux specific syscalls or for building kernel modules is incredibly > broken. Yes the correct header on mips is just 'sgidefs.h' and while glibc has provided it for years, android bionic only added it for lollipop. This is the kernel header: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/mips/include/uapi/asm/sgidefs.h The one provided by glibc has a little more stuff but we don't need it. _MIPS_SIM is defined by GCC (and some older mips compilers) to be equal to one of the _MIPS_SIM_* constants depending on which ABI is selected. GCC and Clang also define _ABI* themselves (as well as being defined in the glibc version of the header) for the current ABI, so I suppose using this without including anything might work if we don't care about other compilers: #if defined(_ABI64) && _MIPS_SIM == _ABI64 > And __linux__ is of course completely out of the question. Just because > it's Linux, the libc doesn't necessarily provide kernel headers. Ok James ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel