From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <vsu@altlinux.ru>
Date: Fri, 11 Aug 2006 22:44:53 +0400
From: Sergey Vlasov <vsu@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Message-ID: <20060811184453.GD15128@procyon.home>
Mail-Followup-To: ALT Devel discussion list <devel@lists.altlinux.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="fXStkuK2IQBfcDe+"
Content-Disposition: inline
Subject: [devel] [RFC] libopenobex-1.3 symbol versioning patch
X-BeenThere: devel@lists.altlinux.org
X-Mailman-Version: 2.1.7
Precedence: list
Reply-To: ALT Devel discussion list <devel@lists.altlinux.org>
List-Id: ALT Devel discussion list <devel.lists.altlinux.org>
List-Unsubscribe: <https://lists.altlinux.org/mailman/listinfo/devel>,
	<mailto:devel-request@lists.altlinux.org?subject=unsubscribe>
List-Archive: <http://lists.altlinux.org/pipermail/devel>
List-Post: <mailto:devel@lists.altlinux.org>
List-Help: <mailto:devel-request@lists.altlinux.org?subject=help>
List-Subscribe: <https://lists.altlinux.org/mailman/listinfo/devel>,
	<mailto:devel-request@lists.altlinux.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Aug 2006 18:45:39 -0000
Archived-At: <http://lore.altlinux.org/devel/20060811184453.GD15128@procyon.home/>
List-Archive: <http://lore.altlinux.org/devel/>
List-Post: <mailto:devel@altlinux.org>


--fXStkuK2IQBfcDe+
Content-Type: text/plain; charset=koi8-r
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello!

=F0=D2=CF=DB=D5 =D7=D9=D3=CB=C1=DA=C1=D4=D8 =DA=C1=CD=C5=DE=C1=CE=C9=D1 =D0=
=CF =D0=D2=C9=CC=C1=C7=C1=C5=CD=CF=CD=D5 =D0=C1=D4=DE=D5, =CB=CF=D4=CF=D2=
=D9=CA =C4=CF=C2=C1=D7=CC=D1=C5=D4
symbol versioning =D7 libopenobex-1.3 (=D3=C5=CA=DE=C1=D3 =D7 =F3=C9=DA=C9=
=C6=C5 =CC=C5=D6=C9=D4 1.0.1).

=E7=CC=D5=C2=D6=C5 =D7=C5=D2=D3=C9=C9 1.0.0 =D1 =CB=CF=D0=C1=D4=D8 =CE=C5 =
=D3=D4=C1=CC (=DC=D4=CF =CB=CF=CE=C5=C3 2002 =C7=CF=C4=C1, 1.0.1, =C7=C4=C5
=CE=C5 =D3=C4=C5=CC=C1=CC=C9 =CE=C9=DE=C5=C7=CF =D3=D5=DD=C5=D3=D4=D7=C5=CE=
=CE=CF=C7=CF - =CF=CB=D4=D1=C2=D2=D8 2003).  =EE=C1 =D4=CF, =DE=D4=CF =C2=
=D9=CC=CF =D7
=DC=D4=C9=C8 =D7=C5=D2=D3=C9=D1=C8, =D1 =D0=CF=D3=D4=C1=D7=C9=CC =D7=C5=D2=
=D3=C9=C0 OPENOBEX_1.0 (=CD=CF=D6=CE=CF =C2=D9=CC=CF, =CB=CF=CE=C5=DE=CE=CF,
=CE=C1=D0=C9=D3=C1=D4=D8 1.0.0, =CE=CF =D0=CF=DA=C4=CE=C5=C5 =C6=CF=D2=CD=
=C1=D4 =D7=C5=D2=D3=C9=CA =CE=C5=CD=CE=CF=C7=CF =D3=CD=C5=CE=C9=CC=D3=D1).

=E6=D5=CE=CB=C3=C9=C9 OBEX_SetUserCallBack, OBEX_SetTransportMTU, OBEX_Serv=
erAccept,
OBEX_ObjectReParseHeaders =CE=C1 =D3=C1=CD=CF=CD =C4=C5=CC=C5 =C2=D9=CC=C9 =
=C5=DD=A3 =D7 1.0.0, =CE=CF
=C6=C1=CB=D4=C9=DE=C5=D3=CB=C9 =CE=C5 =C2=D9=CC=C9 =C4=CF=D3=D4=D5=D0=CE=D9=
 =C9=DA-=DA=C1 =C6=C9=CC=D8=D4=D2=C1=C3=C9=C9 =D3=C9=CD=D7=CF=CC=CF=D7 =D0=
=CF lib/obex.sym,
=C7=C4=C5 =CF=CE=C9 =C2=D9=CC=C9 =D0=D2=CF=D0=D5=DD=C5=CE=D9 (=DC=D4=C1 =CF=
=DB=C9=C2=CB=C1 =C2=D9=CC=C1 =C9=D3=D0=D2=C1=D7=CC=C5=CE=C1 =D5=D6=C5 =D0=
=CF=D3=CC=C5 =D7=D9=C8=CF=C4=C1
1.0.1, =C9 =D0=C5=D2=D7=D9=CA =D2=C5=CC=C9=DA, =D7 =CB=CF=D4=CF=D2=D9=CA =
=D0=CF=D0=C1=CC=CF =C9=D3=D0=D2=C1=D7=CC=C5=CE=C9=C5 - 1.1), =D0=CF=DC=D4=
=CF=CD=D5 =D1
=D0=CF=D3=D4=C1=D7=C9=CC =C4=CC=D1 =DC=D4=C9=C8 =D3=C9=CD=D7=CF=CC=CF=D7 =
=D7=C5=D2=D3=C9=C0 OPENOBEX_1.1, =CB=C1=CB =C9 =C4=CC=D1 =C4=CF=C2=C1=D7=CC=
=C5=CE=CE=D9=C8
=D0=CF=DA=C4=CE=C5=C5 =D7 =C8=CF=C4=C5 =D2=C1=DA=D2=C1=C2=CF=D4=CB=C9 1.1 O=
BEX_SuspendRequest, OBEX_ResumeRequest,
OBEX_InterfaceConnect, OBEX_FindInterfaces, OBEX_FreeInterfaces.
=F0=CF=D3=CC=C5 1.1 =D7=D2=CF=C4=C5 =C2=D9 =C9=DA=CD=C5=CE=C5=CE=C9=CA ABI =
=C2=CF=CC=D8=DB=C5 =CE=C5 =C2=D9=CC=CF (=D7=CF =D7=D3=D1=CB=CF=CD =D3=CC=D5=
=DE=C1=C5,
=C6=C1=CA=CC lib/obex.sym =C2=CF=CC=D8=DB=C5 =CE=C5 =CD=C5=CE=D1=CC=D3=D1).

=F4=C5=D3=D4 =C4=CC=D1 autoconf =D3=C1=CD=CF=D0=C1=CC=D8=CE=D9=CA - =D7=CF=
=DA=CD=CF=D6=CE=CF, =D5 =CB=CF=C7=CF-=D4=CF =C5=D3=D4=D8 =D7=C1=D2=C9=C1=CE=
=D4=D9
=CC=D5=DE=DB=C5?


--- openobex-1.3/lib/Makefile.am.alt-symbol-versions	2006-08-11 16:38:36 +0=
400
+++ openobex-1.3/lib/Makefile.am	2006-08-11 22:05:23 +0400
@@ -17,14 +17,20 @@ libopenobex_la_SOURCES =3D \
 	irda.h irda_wrap.h \
 	usbobex.c usbobex.h
=20
+if VERSIONED_SYMBOLS
+VSYMS =3D -Wl,--version-script=3D$(srcdir)/obex.ver
+else
+VSYMS =3D -export-symbols $(srcdir)/obex.sym
+endif
+
 libopenobex_la_LDFLAGS =3D \
 	-version-info 4:0:3 \
-	-export-symbols $(top_srcdir)/lib/obex.sym
+	$(VSYMS)
=20
 libopenobex_la_LIBADD =3D @USB_LIBS@
=20
 INCLUDES =3D -I$(top_builddir)/include
=20
-EXTRA_DIST =3D obex.sym win32compat.c
+EXTRA_DIST =3D obex.ver obex.sym win32compat.c
=20
 MAINTAINERCLEANFILES =3D Makefile.in
--- openobex-1.3/lib/obex.ver.alt-symbol-versions	2006-08-11 22:05:23 +0400
+++ openobex-1.3/lib/obex.ver	2006-08-11 22:05:23 +0400
@@ -0,0 +1,57 @@
+OPENOBEX_1.0 {
+global:
+
+	OBEX_Init;
+	OBEX_Cleanup;
+	OBEX_RegisterCTransport;
+	OBEX_SetCustomData;
+	OBEX_GetCustomData;
+	OBEX_TransportConnect;
+	OBEX_TransportDisconnect;
+	OBEX_CustomDataFeed;
+	OBEX_GetFD;
+	OBEX_HandleInput;
+	OBEX_ServerRegister;
+	OBEX_Request;
+	OBEX_CancelRequest;
+	OBEX_SetUserData;
+	OBEX_GetUserData;
+	OBEX_ObjectNew;
+	OBEX_ObjectDelete;
+	OBEX_ObjectAddHeader;
+	OBEX_ObjectGetNextHeader;
+	OBEX_ObjectReadStream;
+	OBEX_ObjectSetRsp;
+	OBEX_ObjectGetNonHdrData;
+	OBEX_ObjectSetNonHdrData;
+	OBEX_ObjectSetHdrOffset;
+	OBEX_UnicodeToChar;
+	OBEX_CharToUnicode;
+	OBEX_ResponseToString;
+	OBEX_GetResponseMessage;
+	InOBEX_ServerRegister;
+	InOBEX_TransportConnect;
+	IrOBEX_ServerRegister;
+	IrOBEX_TransportConnect;
+	BtOBEX_ServerRegister;
+	BtOBEX_TransportConnect;
+	FdOBEX_TransportSetup;
+
+local:
+	*;
+};
+
+OPENOBEX_1.1 {
+global:
+
+	OBEX_FindInterfaces;
+	OBEX_FreeInterfaces;
+	OBEX_InterfaceConnect;
+	OBEX_ObjectReParseHeaders;
+	OBEX_ResumeRequest;
+	OBEX_ServerAccept;
+	OBEX_SetTransportMTU;
+	OBEX_SetUserCallBack;
+	OBEX_SuspendRequest;
+
+} OPENOBEX_1.0;
--- openobex-1.3/acinclude.m4.alt-symbol-versions	2006-08-11 16:38:36 +0400
+++ openobex-1.3/acinclude.m4	2006-08-11 22:12:09 +0400
@@ -44,6 +44,55 @@ AC_DEFUN([AC_INIT_OPENOBEX], [
 	AC_DEFINE_UNQUOTED(CONFIGDIR, "${configdir}", [Directory for the configur=
ation files])
 ])
=20
+AC_DEFUN([AC_CHECK_VERSIONED_SYMBOLS], [
+	AC_ARG_ENABLE(symbol-versions,
+	  AC_HELP_STRING([--disable-symbol-versions], [do not compile shared libr=
ary with versioned symbols]),
+	  versioned=3D"$withval", versioned=3D"yes")
+	if test "$versioned" =3D "yes"; then
+	  AC_CACHE_CHECK([whether -Wl,--version-script=3D... works], ac_cv_versio=
n_script_works, [
+	  	cat <<ACEOF >conftest.ver
+TEST_1.0 {
+global:
+	test_1_0;
+local:
+	*;
+};
+TEST_1.1 {
+global:
+	test_1_1;
+} TEST_1.0;
+ACEOF
+	  	saved_LDFLAGS=3D"$LDFLAGS"
+		LDFLAGS=3D"$LDFLAGS -shared -Wl,--version-script=3Dconftest.ver"
+		AC_TRY_LINK([
+				int test_1_0(void)
+				{
+					return 0;
+				}
+				int test_1_1(void)
+				{
+					return 1;
+				}
+			], [],
+			[ac_cv_version_script_works=3Dyes],
+			[ac_cv_version_script_works=3Dno])
+	  	LDFLAGS=3D"$saved_LDFLAGS"
+	  ])
+	  if test "$ac_cv_version_script_works" =3D "yes"; then
+	  	:
+	  else
+	  	versioned=3Dno
+	  fi
+	fi
+	AC_MSG_CHECKING(for versioned symbols)
+	if test "$versioned" =3D "yes"; then
+		AC_MSG_RESULT(yes)
+	else
+		AC_MSG_RESULT(no)
+	fi
+	AM_CONDITIONAL(VERSIONED_SYMBOLS, test x$versioned =3D xyes)
+])
+
 AC_DEFUN([AC_PATH_IRDA], [
 	AC_CACHE_CHECK([for IrDA support], irda_found, [
 		AC_TRY_COMPILE([
--- openobex-1.3/configure.in.alt-symbol-versions	2006-08-11 16:38:36 +0400
+++ openobex-1.3/configure.in	2006-08-11 22:05:23 +0400
@@ -18,6 +18,7 @@ m4_define([_LT_AC_TAGCONFIG], [])
 m4_ifdef([AC_LIBTOOL_TAGS], [AC_LIBTOOL_TAGS([])])
=20
 AC_PROG_LIBTOOL
+AC_CHECK_VERSIONED_SYMBOLS
=20
 AC_PATH_IRDA
 AC_PATH_BLUEZ


--=20
Sergey Vlasov

--fXStkuK2IQBfcDe+
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFE3NAlW82GfkQfsqIRAs0NAJ9sh7fhW8ePsHYnBa92GbnvoWlj+ACghf9M
bN1YhtVZI27beSRNaUnjeK8=
=amtH
-----END PGP SIGNATURE-----

--fXStkuK2IQBfcDe+--