move to a version script for cleaner client API
authorSylvain BERTRAND <[email protected]>
Wed, 14 Jul 2021 16:30:37 +0000 (14 16:30 +0000)
committerSylvain BERTRAND <[email protected]>
Wed, 14 Jul 2021 16:30:37 +0000 (14 16:30 +0000)
make
make.libudev.sh
make.udevd.sh
src/libudev-private.h
src/libudev.sym [new file with mode: 0644]

diff --git a/make b/make
index c3e436b..e770b37 100755 (executable)
--- a/make
+++ b/make
@@ -27,7 +27,6 @@ libudev-queue-private.c
 libudev-util.c
 libudev-util-private.c
 '
-
 udevd_common_src_files='
 udev-event.c
 udev-watch.c
@@ -42,11 +41,29 @@ udev-builtin-kmod.c
 udev-builtin-path_id.c
 udev-builtin-usb_id.c
 '
-
+udevd_libudev_src_files='
+libudev.c
+libudev-device-private.c
+libudev-device.c
+libudev-list.c
+libudev-monitor.c
+libudev-queue-private.c
+libudev-queue.c
+libudev-util-private.c
+libudev-util.c
+'
 udevd_src_files='
 udevd.c
 '
-
+udevadm_libudev_src_files='
+libudev.c
+libudev-device-private.c
+libudev-device.c
+libudev-list.c
+libudev-monitor.c
+libudev-util-private.c
+libudev-util.c
+'
 udevadm_src_files='
 udevadm.c
 udevadm-info.c
index 55e0d89..307eda5 100644 (file)
@@ -25,6 +25,7 @@ echo "LIBUDEV_CCLD libudev.so.${libudev_api}.0.0"
 mkdir -p -- $fake_root$e_libdir
 
 $libudev_ccld  -o $fake_root$e_libdir/libudev.so.${libudev_api}.0.0 \
+               -Wl,--version-script=$src_path/src/libudev.sym \
                $libudev_o_files
 
 ln -s libudev.so.${libudev_api}.0.0 $fake_root$e_libdir/libudev.so.${libudev_api}
index d22f595..850cc11 100644 (file)
@@ -40,6 +40,13 @@ do
        udevd_o_files="$udevd_o_file $udevd_o_files"
 done
 
+for udevd_libudev_src_file in $udevd_libudev_src_files
+do
+       udevd_libudev_o_file_name=$(basename $udevd_libudev_src_file .c)
+       udevd_libudev_o_file=$(dirname $udevd_libudev_src_file)/${udevd_libudev_o_file_name}.o
+       udevd_libudev_o_files="$udevd_libudev_o_file $udevd_libudev_o_files"
+done
+
 for udevadm_src_file in $udevadm_src_files
 do
        udevadm_o_file_name=$(basename $udevadm_src_file .c)
@@ -47,6 +54,12 @@ do
        udevadm_o_files="$udevadm_o_file $udevadm_o_files"
 done
 
+for udevadm_libudev_src_file in $udevadm_libudev_src_files
+do
+       udevadm_libudev_o_file_name=$(basename $udevadm_libudev_src_file .c)
+       udevadm_libudev_o_file=$(dirname $udevadm_libudev_src_file)/${udevadm_libudev_o_file_name}.o
+       udevadm_libudev_o_files="$udevadm_libudev_o_file $udevadm_libudev_o_files"
+done
 #-------------------------------------------------------------------------------
 
 mkdir -p -- $fake_root$e_eprefix/bin
@@ -58,6 +71,7 @@ echo "BIN_CCLD udevd"
 $bin_ccld      -o $fake_root$e_eprefix/bin/udevd \
                $udevd_o_files \
                $udevd_common_o_files \
+               $udevd_libudev_o_files \
                -L$fake_root$e_libdir -ludev
 sep_end
 
@@ -69,6 +83,7 @@ echo "BIN_CCLD udevadm"
 $bin_ccld      -o $fake_root$e_eprefix/bin/udevadm \
                $udevadm_o_files \
                $udevd_common_o_files \
+               $udevadm_libudev_o_files \
                -L$fake_root$e_libdir -ludev
 sep_end
 ################################################################################
index 4b95ac2..b970c06 100644 (file)
@@ -45,7 +45,7 @@ udev_log_null(struct udev *udev, const char *format, ...) {}
 #  define err(udev, arg...) udev_log_null(udev, ## arg)
 #endif
 
-#define UDEV_EXPORT __attribute__ ((visibility("default")))
+#define UDEV_EXPORT
 
 static inline void udev_log_init(const char *program_name)
 {
diff --git a/src/libudev.sym b/src/libudev.sym
new file mode 100644 (file)
index 0000000..3b9bcfc
--- /dev/null
@@ -0,0 +1,101 @@
+/* remove the obvious and illegal planned obsolescence GNU symbol versioning */
+{
+global:
+       /* LIBUDEV_183 */
+        udev_device_get_action;
+        udev_device_get_devlinks_list_entry;
+        udev_device_get_devnode;
+        udev_device_get_devnum;
+        udev_device_get_devpath;
+        udev_device_get_devtype;
+        udev_device_get_driver;
+        udev_device_get_is_initialized;
+        udev_device_get_parent;
+        udev_device_get_parent_with_subsystem_devtype;
+        udev_device_get_properties_list_entry;
+        udev_device_get_property_value;
+        udev_device_get_seqnum;
+        udev_device_get_subsystem;
+        udev_device_get_sysattr_list_entry;
+        udev_device_get_sysattr_value;
+        udev_device_get_sysname;
+        udev_device_get_sysnum;
+        udev_device_get_syspath;
+        udev_device_get_tags_list_entry;
+        udev_device_get_udev;
+        udev_device_get_usec_since_initialized;
+        udev_device_has_tag;
+        udev_device_new_from_devnum;
+        udev_device_new_from_environment;
+        udev_device_new_from_subsystem_sysname;
+        udev_device_new_from_syspath;
+        udev_device_ref;
+        udev_device_unref;
+        udev_enumerate_add_match_is_initialized;
+        udev_enumerate_add_match_parent;
+        udev_enumerate_add_match_property;
+        udev_enumerate_add_match_subsystem;
+        udev_enumerate_add_match_sysattr;
+        udev_enumerate_add_match_sysname;
+        udev_enumerate_add_match_tag;
+        udev_enumerate_add_nomatch_subsystem;
+        udev_enumerate_add_nomatch_sysattr;
+        udev_enumerate_add_syspath;
+        udev_enumerate_get_list_entry;
+        udev_enumerate_get_udev;
+        udev_enumerate_new;
+        udev_enumerate_ref;
+        udev_enumerate_scan_devices;
+        udev_enumerate_scan_subsystems;
+        udev_enumerate_unref;
+        udev_get_log_priority;
+        udev_get_userdata;
+        udev_list_entry_get_by_name;
+        udev_list_entry_get_name;
+        udev_list_entry_get_next;
+        udev_list_entry_get_value;
+        udev_monitor_enable_receiving;
+        udev_monitor_filter_add_match_subsystem_devtype;
+        udev_monitor_filter_add_match_tag;
+        udev_monitor_filter_remove;
+        udev_monitor_filter_update;
+        udev_monitor_get_fd;
+        udev_monitor_get_udev;
+        udev_monitor_new_from_netlink;
+        udev_monitor_receive_device;
+        udev_monitor_ref;
+        udev_monitor_set_receive_buffer_size;
+        udev_monitor_unref;
+        udev_new;
+        udev_queue_get_kernel_seqnum;
+        udev_queue_get_queue_is_empty;
+        udev_queue_get_queued_list_entry;
+        udev_queue_get_seqnum_is_finished;
+        udev_queue_get_seqnum_sequence_is_finished;
+        udev_queue_get_udev;
+        udev_queue_get_udev_is_active;
+        udev_queue_get_udev_seqnum;
+        udev_queue_new;
+        udev_queue_ref;
+        udev_queue_unref;
+        udev_ref;
+        udev_set_log_fn;
+        udev_set_log_priority;
+        udev_set_userdata;
+        udev_unref;
+        udev_util_encode_string;
+       /* LIBUDEV_189 */
+        udev_device_new_from_device_id;
+       /* LIBUDEV_196 */
+        udev_hwdb_new;
+        udev_hwdb_ref;
+        udev_hwdb_unref;
+        udev_hwdb_get_properties_list_entry;
+       /* LIBUDEV_199 */
+        udev_device_set_sysattr_value;
+        udev_queue_flush;
+       /* LIBUDEV_215 */
+        udev_queue_get_fd;
+local:
+        *;
+};