From patchwork Sun Feb 23 11:12:48 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Welche X-Patchwork-Id: 3703421 X-Patchwork-Delegate: tiwai@suse.de Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 1827B9F370 for ; Sun, 23 Feb 2014 11:13:27 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1C7FC201D5 for ; Sun, 23 Feb 2014 11:13:26 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id 5F31F201BF for ; Sun, 23 Feb 2014 11:13:23 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id C900626516E; Sun, 23 Feb 2014 12:13:21 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id 6C62F265083; Sun, 23 Feb 2014 12:13:12 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 26E8A2650AF; Sun, 23 Feb 2014 12:13:11 +0100 (CET) Received: from ppsw-52.csi.cam.ac.uk (ppsw-52.csi.cam.ac.uk [131.111.8.152]) by alsa0.perex.cz (Postfix) with ESMTP id D42ED265083 for ; Sun, 23 Feb 2014 12:13:03 +0100 (CET) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Received: from host-78-150-52-134.as13285.net ([78.150.52.134]:65497 helo=quantz) by ppsw-52.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587) with esmtpsa (LOGIN:prlw1) (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) id 1WHWzW-0000So-F0 (Exim 4.82_3-c0e5623) (return-path ); Sun, 23 Feb 2014 11:13:02 +0000 Date: Sun, 23 Feb 2014 11:12:48 +0000 From: Patrick Welche To: Takashi Iwai Message-ID: <20140223111248.GA971@quantz> References: <20140110153700.GC1173@quark.internal.precedence.co.uk> <20140114101709.GB160@quark.internal.precedence.co.uk> <20140221012704.GA15861@quantz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22 (2013-10-16) Cc: alsa-devel@alsa-project.org Subject: Re: [alsa-devel] alsa on non-linux X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP On Fri, Feb 21, 2014 at 12:04:03PM +0100, Takashi Iwai wrote: > At Fri, 21 Feb 2014 01:27:04 +0000, > Patrick Welche wrote: > > > > On Tue, Jan 14, 2014 at 02:23:01PM +0100, Takashi Iwai wrote: > > > BTW, about your patch: I don't think it's good to embed the endianness > > > in asoundlib.h. It makes the header file appearing differently, > > > depending on the architecture, which is rather confusing. > > > > Is this more what you have in mind? (Less portable than autoconf, but > > not set at configure time.) > > Yes, I supposed something like that. > > > > > The four files which included endian.h were: > > > > - include/asoundlib-head.h > > - include/local.h > > - include/sound/type_compat.h > > - src/pcm/pcm_file.c > > > > The endian.h line(s) in asoundlib.h is now generated by configure. > > Looks almost good, but I prefer seeing it just after #include > instead of the middle in alsa/* inclusions. > > Other than that, all look good to me. > Could you fix and resubmit with your sign-off? Version 2 with some of asoundlib-head.h moved to configure.in. (Fancy a patch to rename configure.in configure.ac, s/INCLUDES/AM_CPPFLAGS/?) Cheers, Patrick From b14f62d1345b563e9b8f525efb00f30312b17cc2 Mon Sep 17 00:00:00 2001 From: Patrick Welche Date: Sun, 23 Feb 2014 11:02:28 +0000 Subject: [PATCH] Portability fix: look for sys/endian.h as well as endian.h - define __BYTE_ORDER and friends. - adjust asoundlib.h accordingly. Signed-off-by: Patrick Welche --- configure.in | 33 +++++++++++++++++++++++++++++++-- include/asoundlib-head.h | 13 ------------- include/local.h | 18 +++++++++++++++++- src/pcm/pcm_file.c | 1 - 4 files changed, 48 insertions(+), 17 deletions(-) diff --git a/configure.in b/configure.in index bb56eb6..9463b5a 100644 --- a/configure.in +++ b/configure.in @@ -309,8 +309,8 @@ fi AC_SUBST(ALSA_DEPLIBS) -dnl Check for wordexp.h -AC_CHECK_HEADERS([wordexp.h]) +dnl Check for headers +AC_CHECK_HEADERS([wordexp.h endian.h sys/endian.h]) dnl Check for resmgr support... AC_MSG_CHECKING(for resmgr support) @@ -660,6 +660,35 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ dnl Create asoundlib.h dynamically according to configure options echo "Creating asoundlib.h..." cp "$srcdir"/include/asoundlib-head.h include/asoundlib.h +test "$ac_cv_header_endian_h" = "yes" && echo "#include " >> include/asoundlib.h +if test "$ac_cv_header_sys_endian_h" = "yes"; then +cat >> include/asoundlib.h < +#ifndef __BYTE_ORDER +#define __BYTE_ORDER BYTE_ORDER +#endif +#ifndef __LITTLE_ENDIAN +#define __LITTLE_ENDIAN LITTLE_ENDIAN +#endif +#ifndef __BIG_ENDIAN +#define __BIG_ENDIAN BIG_ENDIAN +#endif +EOF +fi +cat >> include/asoundlib.h < +#include +#include +#include +#include +#include +#include +EOF test "$build_pcm" = "yes" && echo "#include " >> include/asoundlib.h test "$build_rawmidi" = "yes" && echo "#include " >> include/asoundlib.h test "$build_pcm" = "yes" && echo "#include " >> include/asoundlib.h diff --git a/include/asoundlib-head.h b/include/asoundlib-head.h index 71b5c29..1ec611e 100644 --- a/include/asoundlib-head.h +++ b/include/asoundlib-head.h @@ -35,19 +35,6 @@ #include #include #include -#include #include #include #include - -#ifndef __GNUC__ -#define __inline__ inline -#endif - -#include -#include -#include -#include -#include -#include -#include diff --git a/include/local.h b/include/local.h index 9464efa..2fe9a27 100644 --- a/include/local.h +++ b/include/local.h @@ -22,13 +22,30 @@ #ifndef __LOCAL_H #define __LOCAL_H +#include "config.h" + #include #include #include #include #include #include +#ifdef HAVE_ENDIAN_H #include +#elif defined(HAVE_SYS_ENDIAN_H) +#include +#ifndef __BYTE_ORDER +#define __BYTE_ORDER BYTE_ORDER +#endif +#ifndef __LITTLE_ENDIAN +#define __LITTLE_ENDIAN LITTLE_ENDIAN +#endif +#ifndef __BIG_ENDIAN +#define __BIG_ENDIAN BIG_ENDIAN +#endif +#else +#error Header defining endianness not defined +#endif #include #include #include @@ -36,7 +53,6 @@ #include #include -#include "config.h" #ifdef SUPPORT_RESMGR #include #endif diff --git a/src/pcm/pcm_file.c b/src/pcm/pcm_file.c index 7123025..b1f2330 100644 --- a/src/pcm/pcm_file.c +++ b/src/pcm/pcm_file.c @@ -26,7 +26,6 @@ * */ -#include #include #include #include