Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145818210
D20271.id60384.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D20271.id60384.diff
View Options
Index: share/man/man4/geom_uzip.4
===================================================================
--- share/man/man4/geom_uzip.4
+++ share/man/man4/geom_uzip.4
@@ -36,6 +36,7 @@
place the following line in your
kernel configuration file:
.Bd -ragged -offset indent
+.Cd "device zlib"
.Cd "device xz"
.Cd "options GEOM_UZIP"
.Ed
Index: sys/conf/files
===================================================================
--- sys/conf/files
+++ sys/conf/files
@@ -3626,7 +3626,8 @@
geom/uzip/g_uzip.c optional geom_uzip
geom/uzip/g_uzip_lzma.c optional geom_uzip
geom/uzip/g_uzip_wrkthr.c optional geom_uzip
-geom/uzip/g_uzip_zlib.c optional geom_uzip
+geom/uzip/g_uzip_zlib.c optional geom_uzip \
+ compile-with "${ZLIB_C}"
geom/vinum/geom_vinum.c optional geom_vinum
geom/vinum/geom_vinum_create.c optional geom_vinum
geom/vinum/geom_vinum_drive.c optional geom_vinum
@@ -3997,6 +3998,9 @@
libkern/zlib.c optional crypto | geom_uzip | ipsec | \
ipsec_support | mxge | netgraph_deflate | ddb_ctf | gzio
contrib/zlib/adler32.c optional crypto | geom_uzip | ipsec | \
+ ipsec_support | mxge | ddb_ctf | gzio | zfs | zlib \
+ compile-with "${ZLIB_C}"
+contrib/zlib/compress.c optional crypto | geom_uzip | ipsec | \
ipsec_support | mxge | ddb_ctf | gzio | zfs | zlib \
compile-with "${ZLIB_C}"
contrib/zlib/crc32.c optional crypto | geom_uzip | ipsec | \
Index: sys/conf/kern.pre.mk
===================================================================
--- sys/conf/kern.pre.mk
+++ sys/conf/kern.pre.mk
@@ -175,6 +175,7 @@
# for zlib in the kernel
ZLIB_CFLAGS+= -DZ_SOLO
+ZLIB_CFLAGS+= -DMY_ZCALLOC
ZLIB_C= ${CC} -c ${ZLIB_CFLAGS} ${CFLAGS} ${.IMPSRC}
# for ZSTD in the kernel (include zstd/lib/freebsd before other CFLAGS)
Index: sys/conf/kmod.mk
===================================================================
--- sys/conf/kmod.mk
+++ sys/conf/kmod.mk
@@ -105,6 +105,7 @@
.endif
ZLIB_CFLAGS+= -DZ_SOLO
+ZLIB_CFLAGS+= -DMY_ZCALLOC
.if !empty(CFLAGS:M-O[23s]) && empty(CFLAGS:M-fno-strict-aliasing)
CFLAGS+= -fno-strict-aliasing
Index: sys/contrib/zlib/deflate.c
===================================================================
--- sys/contrib/zlib/deflate.c
+++ sys/contrib/zlib/deflate.c
@@ -266,7 +266,7 @@
strm->msg = Z_NULL;
if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
+#if defined(Z_SOLO) && !defined(MY_ZCALLOC)
return Z_STREAM_ERROR;
#else
strm->zalloc = zcalloc;
@@ -274,7 +274,7 @@
#endif
}
if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
+#if defined(Z_SOLO) && !defined(MY_ZCALLOC)
return Z_STREAM_ERROR;
#else
strm->zfree = zcfree;
Index: sys/contrib/zlib/infback.c
===================================================================
--- sys/contrib/zlib/infback.c
+++ sys/contrib/zlib/infback.c
@@ -42,7 +42,7 @@
return Z_STREAM_ERROR;
strm->msg = Z_NULL; /* in case we return an error */
if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
+#if defined(Z_SOLO) && !defined(MY_ZCALLOC)
return Z_STREAM_ERROR;
#else
strm->zalloc = zcalloc;
@@ -50,7 +50,7 @@
#endif
}
if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
+#if defined(Z_SOLO) && !defined(MY_ZCALLOC)
return Z_STREAM_ERROR;
#else
strm->zfree = zcfree;
Index: sys/contrib/zlib/inflate.c
===================================================================
--- sys/contrib/zlib/inflate.c
+++ sys/contrib/zlib/inflate.c
@@ -207,7 +207,7 @@
if (strm == Z_NULL) return Z_STREAM_ERROR;
strm->msg = Z_NULL; /* in case we return an error */
if (strm->zalloc == (alloc_func)0) {
-#ifdef Z_SOLO
+#if defined(Z_SOLO) && !defined(MY_ZCALLOC)
return Z_STREAM_ERROR;
#else
strm->zalloc = zcalloc;
@@ -215,7 +215,7 @@
#endif
}
if (strm->zfree == (free_func)0)
-#ifdef Z_SOLO
+#if defined(Z_SOLO) && !defined(MY_ZCALLOC)
return Z_STREAM_ERROR;
#else
strm->zfree = zcfree;
Index: sys/contrib/zlib/zconf.h
===================================================================
--- sys/contrib/zlib/zconf.h
+++ sys/contrib/zlib/zconf.h
@@ -30,11 +30,9 @@
# define adler32_combine z_adler32_combine
# define adler32_combine64 z_adler32_combine64
# define adler32_z z_adler32_z
-# ifndef Z_SOLO
-# define compress z_compress
-# define compress2 z_compress2
-# define compressBound z_compressBound
-# endif
+# define compress z_compress
+# define compress2 z_compress2
+# define compressBound z_compressBound
# define crc32 z_crc32
# define crc32_combine z_crc32_combine
# define crc32_combine64 z_crc32_combine64
Index: sys/contrib/zlib/zlib.h
===================================================================
--- sys/contrib/zlib/zlib.h
+++ sys/contrib/zlib/zlib.h
@@ -1213,8 +1213,6 @@
27-31: 0 (reserved)
*/
-#ifndef Z_SOLO
-
/* utility functions */
/*
@@ -1288,6 +1286,8 @@
length of the source is *sourceLen. On return, *sourceLen is the number of
source bytes consumed.
*/
+
+#ifndef Z_SOLO
/* gzip file access functions */
Index: sys/contrib/zlib/zutil.h
===================================================================
--- sys/contrib/zlib/zutil.h
+++ sys/contrib/zlib/zutil.h
@@ -256,7 +256,7 @@
# define Tracecv(c,x)
#endif
-#ifndef Z_SOLO
+#if !defined(Z_SOLO) || defined(MY_ZCALLOC)
voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
unsigned size));
void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
Index: sys/dev/zlib/zcalloc.c
===================================================================
--- sys/dev/zlib/zcalloc.c
+++ sys/dev/zlib/zcalloc.c
@@ -4,6 +4,7 @@
*/
#include <sys/param.h>
+#include <contrib/zlib/zutil.h>
#include <dev/zlib/zcalloc.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
@@ -22,6 +23,13 @@
{
return mallocarray(items, size, M_ZLIB, M_NOWAIT);
+}
+
+void *
+zcalloc(void *nil, u_int items, u_int size)
+{
+
+ return zcalloc_waitok(nil, items, size);
}
void
Index: sys/geom/uzip/g_uzip_zlib.c
===================================================================
--- sys/geom/uzip/g_uzip_zlib.c
+++ sys/geom/uzip/g_uzip_zlib.c
@@ -33,7 +33,8 @@
#include <sys/systm.h>
#include <sys/malloc.h>
-#include <sys/zlib.h>
+#include <contrib/zlib/zlib.h>
+#include <dev/zlib/zcalloc.h>
#include <geom/uzip/g_uzip.h>
#include <geom/uzip/g_uzip_dapi.h>
@@ -46,8 +47,6 @@
z_stream zs;
};
-static void *z_alloc(void *, u_int, u_int);
-static void z_free(void *, void *);
static int g_uzip_zlib_rewind(struct g_uzip_dapi *, const char *);
static void
@@ -97,26 +96,18 @@
return (err);
}
-static int
-z_compressBound(int len)
-{
-
- return (len + (len >> 12) + (len >> 14) + 11);
-}
-
struct g_uzip_dapi *
g_uzip_zlib_ctor(uint32_t blksz)
{
struct g_uzip_zlib *zp;
zp = malloc(sizeof(struct g_uzip_zlib), M_GEOM_UZIP, M_WAITOK);
- zp->zs.zalloc = z_alloc;
- zp->zs.zfree = z_free;
+ zp->zs.zalloc = zcalloc_nowait;
if (inflateInit(&zp->zs) != Z_OK) {
goto e1;
}
zp->blksz = blksz;
- zp->pub.max_blen = z_compressBound(blksz);
+ zp->pub.max_blen = compressBound(blksz);
zp->pub.decompress = &g_uzip_zlib_decompress;
zp->pub.free = &g_uzip_zlib_free;
zp->pub.rewind = &g_uzip_zlib_rewind;
@@ -125,21 +116,4 @@
e1:
free(zp, M_GEOM_UZIP);
return (NULL);
-}
-
-static void *
-z_alloc(void *nil, u_int type, u_int size)
-{
- void *ptr;
-
- ptr = malloc(type * size, M_GEOM_UZIP, M_NOWAIT);
-
- return (ptr);
-}
-
-static void
-z_free(void *nil, void *ptr)
-{
-
- free(ptr, M_GEOM_UZIP);
}
Index: sys/modules/geom/geom_uzip/Makefile
===================================================================
--- sys/modules/geom/geom_uzip/Makefile
+++ sys/modules/geom/geom_uzip/Makefile
@@ -10,7 +10,8 @@
.PATH: ${SRCTOP}/sys/net
-CFLAGS+= -I${SRCTOP}/sys/contrib/xz-embedded/freebsd \
+CFLAGS.g_uzip_zlib.c+= ${ZLIB_CFLAGS}
+CFLAGS.g_uzip_lzma.c+= -I${SRCTOP}/sys/contrib/xz-embedded/freebsd \
-I${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz/
SRCS+= opt_geom.h
Index: sys/modules/zlib/Makefile
===================================================================
--- sys/modules/zlib/Makefile
+++ sys/modules/zlib/Makefile
@@ -11,6 +11,7 @@
SRCS+= zcalloc.c
SRCS+= zlib_mod.c
SRCS+= adler32.c
+SRCS+= compress.c
SRCS+= crc32.c
SRCS+= deflate.c
SRCS+= inffast.c
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Feb 25, 9:29 PM (17 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28995723
Default Alt Text
D20271.id60384.diff (8 KB)
Attached To
Mode
D20271: geom_uzip to update zlib version 1.0.4 to 1.2.11.
Attached
Detach File
Event Timeline
Log In to Comment