From 225978cfc8a61d2d5a650c94c93d55dd0ce8c6e1 Mon Sep 17 00:00:00 2001 From: Rong-En Fan Date: Fri, 26 Dec 2008 19:21:54 +0000 Subject: - Fix build on 6.x by using valloc(3) instead of posix_memalign(3) Reported by: pointyhat via erwin --- misc/mbuffer/files/patch-mbuffer.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/misc/mbuffer/files/patch-mbuffer.c b/misc/mbuffer/files/patch-mbuffer.c index c74f0794c56b..41985bf633a7 100644 --- a/misc/mbuffer/files/patch-mbuffer.c +++ b/misc/mbuffer/files/patch-mbuffer.c @@ -1,5 +1,5 @@ ---- mbuffer.c.orig 2008-12-24 12:17:41.000000000 +0800 -+++ mbuffer.c 2008-12-24 12:36:47.000000000 +0800 +--- mbuffer.c.orig 2008-12-08 09:20:47.000000000 +0800 ++++ mbuffer.c 2008-12-27 03:21:03.000000000 +0800 @@ -32,7 +32,6 @@ #include #include @@ -8,7 +8,7 @@ #include #include #include -@@ -45,6 +44,8 @@ +@@ -45,13 +44,21 @@ #include #include #include @@ -16,8 +16,11 @@ +#include #include #include ++#if defined(__FreeBSD__) ++#include ++#endif -@@ -52,6 +53,9 @@ + #ifdef HAVE_SENDFILE #ifdef HAVE_SENDFILE_H #include #endif @@ -27,7 +30,7 @@ /* if this sendfile implementation does not support sending from buffers, disable sendfile support */ #ifndef SFV_FD_SELF -@@ -855,7 +859,7 @@ +@@ -855,7 +862,7 @@ err = fsync(fd); while ((err != 0) && (errno == EINTR)); if (err != 0) { @@ -36,7 +39,7 @@ infomsg("syncing unsupported on %s: omitted.\n",d->arg); } else { warningmsg("unable to sync %s: %s\n",d->arg,strerror(errno)); -@@ -1126,7 +1130,7 @@ +@@ -1126,7 +1133,7 @@ err = fsync(d->fd); while ((err != 0) && (errno == EINTR)); if (err != 0) { @@ -45,7 +48,7 @@ infomsg("syncing unsupported on %s: omitted.\n",d->arg); } else { warningmsg("unable to sync %s: %s\n",d->arg,strerror(errno)); -@@ -1608,12 +1612,22 @@ +@@ -1608,12 +1615,22 @@ const char *outfile = 0; struct sigaction sig; dest_t *dest = 0; @@ -70,7 +73,7 @@ assert(nump > 0); Blocksize = pgsz; Numblocks = nump/50; -@@ -1664,6 +1678,8 @@ +@@ -1664,6 +1681,8 @@ debugmsg("Verbose = %d\n",Verbose); #if defined(_SC_AVPHYS_PAGES) && defined(_SC_PAGESIZE) && !defined(__CYGWIN__) debugmsg("total # of phys pages: %li (pagesize %li)\n",nump,pgsz); @@ -79,7 +82,7 @@ #endif debugmsg("default buffer set to %d blocks of %lld bytes\n",Numblocks,Blocksize); } else if (!argcheck("-u",argv,&c,argc)) { -@@ -1760,7 +1776,7 @@ +@@ -1760,7 +1779,7 @@ Status = 0; } else if (!strcmp("-c",argv[c])) { debugmsg("enabling full synchronous I/O\n"); @@ -88,7 +91,7 @@ } else if (!argcheck("-a",argv,&c,argc)) { Autoloader = 1; Autoload_time = atoi(argv[c]); -@@ -1864,7 +1880,14 @@ +@@ -1864,7 +1883,14 @@ /* SPW END */ /* check that we stay within system limits */ @@ -104,13 +107,17 @@ if (-1 == mxnrsem) { warningmsg("unable to determine maximum value of semaphores\n"); } else if (Numblocks > (unsigned long long) mxnrsem) { -@@ -1874,8 +1897,8 @@ +@@ -1874,8 +1900,12 @@ if ((Blocksize * (long long)Numblocks) > (long long)SSIZE_MAX) fatal("Cannot address so much memory (%lld*%d=%lld>%lld).\n",Blocksize,Numblocks,Blocksize*(long long)Numblocks,(long long)SSIZE_MAX); /* create buffer */ - Buffer = (char **) memalign(sysconf(_SC_PAGESIZE),Numblocks * sizeof(char *)); - if (!Buffer) ++#if defined(__FreeBSD__) && (__FreeBSD_version < 700000) ++ Buffer = (char **) valloc(Numblocks * sizeof(char *)); ++#else + err = posix_memalign(&Buffer,sysconf(_SC_PAGESIZE),Numblocks * sizeof(char *)); ++#endif + if (err || !Buffer) fatal("Could not allocate enough memory (%d requested): %s\n",Numblocks * sizeof(char *),strerror(errno)); if (Memmap) { -- cgit v1.2.3