Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Jan 2018 18:40:19 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r328263 - head/lib/libregex
Message-ID:  <201801221840.w0MIeJls082586@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevans
Date: Mon Jan 22 18:40:19 2018
New Revision: 328263
URL: https://svnweb.freebsd.org/changeset/base/328263

Log:
  libregex: Add a symbol map
  
  kib points out that trying to re-use symbol versioning from libc is dirty
  and wrong. The implementation in libregex is incompatible by design with the
  implementation in libc. Using the symbol versions from libc can and likely
  will cause confusions for linkers and bring unexpected behavior for
  consumers that unwillingly (transitively) link against libregex.
  
  Reported by:	kib

Added:
  head/lib/libregex/Symbol.map   (contents, props changed)
  head/lib/libregex/Versions.def   (contents, props changed)
Modified:
  head/lib/libregex/Makefile

Modified: head/lib/libregex/Makefile
==============================================================================
--- head/lib/libregex/Makefile	Mon Jan 22 17:47:49 2018	(r328262)
+++ head/lib/libregex/Makefile	Mon Jan 22 18:40:19 2018	(r328263)
@@ -9,8 +9,10 @@ SHLIB_MINOR=	0
 
 CFLAGS+=	-DLIBREGEX
 LIBC_SRCTOP=	${.CURDIR:H}/libc
-SYMBOL_MAPS=	${SYM_MAPS}
 WARNS?=	2
+
+VERSION_DEF=	${.CURDIR}/Versions.def
+SYMBOL_MAPS=	${.CURDIR}/Symbol.map
 
 #HAS_TESTS=
 SUBDIR.${MK_TESTS}+= tests

Added: head/lib/libregex/Symbol.map
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lib/libregex/Symbol.map	Mon Jan 22 18:40:19 2018	(r328263)
@@ -0,0 +1,16 @@
+/*
+ * $FreeBSD$
+ */
+
+/*
+ * libregex uses a different version name because its symbols are not strictly
+ * compatible with those provided by libc. Re-using the version name from libc
+ * could cause linking headaches and make debugging more difficult than it needs
+ * to be.
+ */
+LIBREGEX_1.0 {
+	regcomp;
+	regerror;
+	regexec;
+	regfree;
+};

Added: head/lib/libregex/Versions.def
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lib/libregex/Versions.def	Mon Jan 22 18:40:19 2018	(r328263)
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+LIBREGEX_1.0 {
+};
+



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801221840.w0MIeJls082586>