From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mediacenter.hi.pengutronix.de ([2001:6f8:1178:2::65]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1RnzJR-00058Z-RH for ptxdist@pengutronix.de; Thu, 19 Jan 2012 22:14:25 +0100 Received: from mol by mediacenter.hi.pengutronix.de with local (Exim 4.72) (envelope-from ) id 1RnzJR-00027y-QN for ptxdist@pengutronix.de; Thu, 19 Jan 2012 22:14:25 +0100 Date: Thu, 19 Jan 2012 22:14:25 +0100 From: Michael Olbrich Message-ID: <20120119211425.GC4854@pengutronix.de> References: <1326999243-10642-1-git-send-email-bernhard@bwalle.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1326999243-10642-1-git-send-email-bernhard@bwalle.de> Subject: Re: [ptxdist] [PATCH] host-e2fsprogs: Fix build on Darwin Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de On Thu, Jan 19, 2012 at 07:54:03PM +0100, Bernhard Walle wrote: > The O_DIRECT flag in e2fsprogs is relatively new. MacPorts is still using the > old version of e2fsprogs. However, this patch from the upstream bug tracker > fixes the build of e2fsprogs. > > Strictly direct I/O is not required for ptxdist because we're working on > images only. So removing O_DIRECT here would also work, but this solution is > cleaner. > > Signed-off-by: Bernhard Walle > --- > .../0003-darwin_directio_fix.patch | 46 ++++++++++++++++++++ > patches/e2fsprogs-1.41.14/series | 1 + > 2 files changed, 47 insertions(+), 0 deletions(-) > create mode 100644 patches/e2fsprogs-1.41.14/0003-darwin_directio_fix.patch > > diff --git a/patches/e2fsprogs-1.41.14/0003-darwin_directio_fix.patch b/patches/e2fsprogs-1.41.14/0003-darwin_directio_fix.patch > new file mode 100644 > index 0000000..1e00c04 > --- /dev/null > +++ b/patches/e2fsprogs-1.41.14/0003-darwin_directio_fix.patch > @@ -0,0 +1,46 @@ > +Fix compilation on Darwin > + > +The patch is from upstream bug tracker [1]. However, it's not (yet) in the > +upstream repository. > + > +[1] http://sourceforge.net/tracker/?func=detail&aid=3140289&group_id=2406&atid=102406 > +--- > + lib/ext2fs/unix_io.c | 12 ++++++++++++ > + 1 file changed, 12 insertions(+) > + > +--- a/lib/ext2fs/unix_io.c > ++++ b/lib/ext2fs/unix_io.c > +@@ -464,7 +465,11 @@ static errcode_t unix_open(const char *n > + if (flags & IO_FLAG_EXCLUSIVE) > + open_flags |= O_EXCL; #ifdef O_DIRECT > + if (flags & IO_FLAG_DIRECT_IO) > + open_flags |= O_DIRECT; > ++#endif > + data->flags = flags; > + > + #ifdef HAVE_OPEN64 > +@@ -477,6 +482,13 @@ static errcode_t unix_open(const char *n > + goto cleanup; > + } > + #if !defined(O_DIRECT) && defined(F_NOCACHE) if (flags & IO_FLAG_DIRECT_IO) { > ++ if (fcntl(data->dev, F_NOCACHE, 1) < 0) { > ++ retval = errno; > ++ goto cleanup; > ++ } > ++ } #endif Is better I think. No need for another variable. > ++ > + #ifdef BLKSSZGET > + if (flags & IO_FLAG_DIRECT_IO) { > + if (ioctl(data->dev, BLKSSZGET, &data->align) != 0) > diff --git a/patches/e2fsprogs-1.41.14/series b/patches/e2fsprogs-1.41.14/series > index fac473a..26e2c33 100644 > --- a/patches/e2fsprogs-1.41.14/series > +++ b/patches/e2fsprogs-1.41.14/series > @@ -3,3 +3,4 @@ > 0001-Fixed-bitops.h-for-Coldfire-V4E.patch > 0002-fix-linking-problem.patch > # ec0cc8b8677eb72a286f38e0e9ba63e9 - git-ptx-patches magic > +0003-darwin_directio_fix.patch And please recreate the patch as I described in the other mail, so it has a proper patch header. Michael > -- > 1.7.7.4 > > > -- > ptxdist mailing list > ptxdist@pengutronix.de > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- ptxdist mailing list ptxdist@pengutronix.de