In preparation for testing ARM32 module support in CI, fix some
EXPORT_SYMBOL around the tree, which we will rely on later.

Co-developed-by: Claude <[email protected]>
Signed-off-by: Ahmad Fatoum <[email protected]>
---
 arch/arm/lib32/Makefile            | 1 +
 arch/arm/lib32/string.c            | 7 +++++++
 common/bbu.c                       | 1 +
 common/block.c                     | 2 ++
 common/firmware.c                  | 1 +
 common/globalvar.c                 | 1 +
 common/machine_id.c                | 1 +
 common/memory.c                    | 1 +
 common/structio.c                  | 3 +++
 drivers/base/bus.c                 | 2 ++
 drivers/base/class.c               | 1 +
 drivers/base/driver.c              | 1 +
 drivers/base/platform.c            | 1 +
 drivers/base/power.c               | 2 ++
 drivers/clk/clk-bulk.c             | 2 +-
 drivers/clk/clk.c                  | 1 +
 drivers/firmware/arm_scmi/driver.c | 1 +
 drivers/gpio/gpiolib.c             | 2 +-
 drivers/hw_random/core.c           | 1 +
 drivers/mtd/core.c                 | 1 +
 drivers/net/dsa.c                  | 1 +
 drivers/nvmem/core.c               | 1 +
 drivers/of/base.c                  | 3 ++-
 drivers/pci/pci.c                  | 2 ++
 drivers/pinctrl/pinctrl.c          | 1 +
 drivers/video/fb.c                 | 1 +
 fs/pstore/platform.c               | 1 +
 lib/parameter.c                    | 1 +
 lib/string.c                       | 2 ++
 lib/stringlist.c                   | 3 +++
 lib/ucs2_string.c                  | 2 +-
 net/eth.c                          | 1 +
 net/net.c                          | 1 +
 33 files changed, 49 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm/lib32/string.c

diff --git a/arch/arm/lib32/Makefile b/arch/arm/lib32/Makefile
index cdfb992c0d5d..67c4f16f76ad 100644
--- a/arch/arm/lib32/Makefile
+++ b/arch/arm/lib32/Makefile
@@ -25,6 +25,7 @@ obj-pbl-y += reloc.o
 obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS)    += memcpy.o
 obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS)    += memmove.o
 obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS)    += memset.o
+obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS)    += string.o
 obj-$(CONFIG_ARM_UNWIND) += unwind.o
 obj-$(CONFIG_MODULES) += module.o
 obj-$(CONFIG_ARM_MODULE_PLTS) += module-plts.o
diff --git a/arch/arm/lib32/string.c b/arch/arm/lib32/string.c
new file mode 100644
index 000000000000..ad1113034be3
--- /dev/null
+++ b/arch/arm/lib32/string.c
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <linux/string.h>
+#include <linux/export.h>
+
+EXPORT_SYMBOL(memcpy);
+EXPORT_SYMBOL(memset);
diff --git a/common/bbu.c b/common/bbu.c
index 00d415bcf826..07a51c112f0e 100644
--- a/common/bbu.c
+++ b/common/bbu.c
@@ -288,6 +288,7 @@ bool bbu_handlers_available(void)
 {
        return !list_empty(&bbu_image_handlers);
 }
+EXPORT_SYMBOL(bbu_handlers_available);
 
 /*
  * print a list of all registered update handlers
diff --git a/common/block.c b/common/block.c
index e021b1a9666f..22597124a1b3 100644
--- a/common/block.c
+++ b/common/block.c
@@ -16,6 +16,7 @@
 #include <file-list.h>
 
 LIST_HEAD(block_device_list);
+EXPORT_SYMBOL(block_device_list);
 
 /* a chunk of contiguous data */
 struct chunk {
@@ -583,6 +584,7 @@ const char *blk_type_str(enum blk_type type)
                return "unknown";
        }
 }
+EXPORT_SYMBOL(blk_type_str);
 
 int cdev_get_linux_root_and_opts(const struct cdev *partcdev, const char 
**root,
                                 const char **rootopts)
diff --git a/common/firmware.c b/common/firmware.c
index 264fc9d66dcc..31b75bd88ab5 100644
--- a/common/firmware.c
+++ b/common/firmware.c
@@ -87,6 +87,7 @@ struct firmware_mgr *firmwaremgr_find_by_node(struct 
device_node *np)
 
        return NULL;
 }
+EXPORT_SYMBOL(firmwaremgr_find_by_node);
 
 /*
  * firmwaremgr_list_handlers - list registered firmware device handlers
diff --git a/common/globalvar.c b/common/globalvar.c
index 127ecd5c6075..fcaa15179f68 100644
--- a/common/globalvar.c
+++ b/common/globalvar.c
@@ -21,6 +21,7 @@ struct device global_device = {
        .name = "global",
        .id = DEVICE_ID_SINGLE,
 };
+EXPORT_SYMBOL(global_device);
 
 struct device nv_device = {
        .name = "nv",
diff --git a/common/machine_id.c b/common/machine_id.c
index e670886d8538..acc7aac52cf9 100644
--- a/common/machine_id.c
+++ b/common/machine_id.c
@@ -22,6 +22,7 @@ const void *machine_id_get_hashable(size_t *len)
        *len = __machine_id_hashable_length;
        return __machine_id_hashable;
 }
+EXPORT_SYMBOL(machine_id_get_hashable);
 
 /**
  * machine_id_set_hashable - Provide per-board unique data
diff --git a/common/memory.c b/common/memory.c
index 49ff0ef619d5..1c18c5b38710 100644
--- a/common/memory.c
+++ b/common/memory.c
@@ -212,6 +212,7 @@ void *sbrk(ptrdiff_t increment)
 }
 
 LIST_HEAD(memory_banks);
+EXPORT_SYMBOL(memory_banks);
 
 static int barebox_grow_memory_bank(struct memory_bank *bank, const char *name,
                                    const struct resource *newres)
diff --git a/common/structio.c b/common/structio.c
index 935c4628dd77..776dc1e902ab 100644
--- a/common/structio.c
+++ b/common/structio.c
@@ -3,6 +3,7 @@
 #include <structio.h>
 #include <command.h>
 #include <device.h>
+#include <linux/export.h>
 
 static struct bobject *active_capture;
 
@@ -34,6 +35,7 @@ int structio_run_command(struct bobject **bret, const char 
*cmd)
        *bret = bobj;
        return 0;
 }
+EXPORT_SYMBOL(structio_run_command);
 
 int structio_devinfo(struct bobject **bret, struct device *dev)
 {
@@ -54,3 +56,4 @@ int structio_devinfo(struct bobject **bret, struct device 
*dev)
        *bret = bobj;
        return 0;
 }
+EXPORT_SYMBOL(structio_devinfo);
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 7ee5959e8b9f..9e5b43cd0ffa 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -10,6 +10,7 @@
 #include <of.h>
 
 DEFINE_DEV_CLASS(bus_class, "bus");
+EXPORT_SYMBOL(bus_class);
 
 struct bus_type *get_bus_by_name(const char *name)
 {
@@ -22,6 +23,7 @@ struct bus_type *get_bus_by_name(const char *name)
 
        return NULL;
 }
+EXPORT_SYMBOL(get_bus_by_name);
 
 int bus_register(struct bus_type *bus)
 {
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 693260fe22dc..d21d679f1acc 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -4,6 +4,7 @@
 #include <linux/list.h>
 
 LIST_HEAD(class_list);
+EXPORT_SYMBOL(class_list);
 
 void class_register(struct class *class)
 {
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 782cdfdfcecb..36a1fcda48c8 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -586,6 +586,7 @@ struct resource *dev_request_mem_resource(struct device 
*dev, int num)
 
        return dev_request_iomem_resource(dev, res);
 }
+EXPORT_SYMBOL(dev_request_mem_resource);
 
 void __iomem *dev_request_mem_region_err_null(struct device *dev, int num)
 {
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index ac7c473c8c7b..9e6718c6476c 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -28,6 +28,7 @@ int platform_driver_register(struct driver *drv)
 
        return register_driver(drv);
 }
+EXPORT_SYMBOL(platform_driver_register);
 
 int platform_device_register(struct device *new_device)
 {
diff --git a/drivers/base/power.c b/drivers/base/power.c
index cffd0436278a..543c85a3d9b8 100644
--- a/drivers/base/power.c
+++ b/drivers/base/power.c
@@ -361,6 +361,7 @@ bool genpd_is_active(void)
 {
        return have_genpd_providers && !list_empty(&gpd_list);
 }
+EXPORT_SYMBOL(genpd_is_active);
 
 static struct bus_type genpd_bus_type = {
        .name           = "genpd",
@@ -563,3 +564,4 @@ void pm_genpd_print(void)
                printf("%-20s %6s\n", genpd->name,
                       genpd->status == GPD_STATE_ACTIVE ? "on" : "off");
 }
+EXPORT_SYMBOL(pm_genpd_print);
diff --git a/drivers/clk/clk-bulk.c b/drivers/clk/clk-bulk.c
index c16fed282b21..e34a1feff2a2 100644
--- a/drivers/clk/clk-bulk.c
+++ b/drivers/clk/clk-bulk.c
@@ -170,7 +170,7 @@ int __must_check clk_bulk_get_all_enabled(struct device 
*dev,
 
        return num_clks;
 }
-EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enabled);
+EXPORT_SYMBOL_GPL(clk_bulk_get_all_enabled);
 
 /**
  * clk_bulk_disable - gate a set of clocks
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index ac5b83cf8b40..5e385380cee2 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -29,6 +29,7 @@ bool clk_have_nonfixed_providers(void)
 
        return false;
 }
+EXPORT_SYMBOL(clk_have_nonfixed_providers);
 
 static int clk_parent_enable(struct clk *clk)
 {
diff --git a/drivers/firmware/arm_scmi/driver.c 
b/drivers/firmware/arm_scmi/driver.c
index bbb62dd5191a..5c69ea953c76 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -39,6 +39,7 @@ static DEFINE_SPINLOCK(protocol_lock);
 
 /* List of all SCMI devices active in system */
 LIST_HEAD(scmi_list);
+EXPORT_SYMBOL(scmi_list);
 /* Protection for the entire list */
 static DEFINE_MUTEX(scmi_list_mutex);
 /* Track the unique id for the transfers for debug & profiling purpose */
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index e1493ffb6640..37a98995f2e8 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -662,7 +662,7 @@ struct gpio_desc *gpiod_request_one(unsigned gpio,
 
        return desc;
 }
-EXPORT_SYMBOL_GPL(gpio_request_one);
+EXPORT_SYMBOL_GPL(gpiod_request_one);
 
 
 /**
diff --git a/drivers/hw_random/core.c b/drivers/hw_random/core.c
index 7bc3c33319f9..9f73aa45bcec 100644
--- a/drivers/hw_random/core.c
+++ b/drivers/hw_random/core.c
@@ -102,6 +102,7 @@ struct hwrng *hwrng_get_first(void)
        else
                return list_first_entry(&hwrngs, struct hwrng, list);
 }
+EXPORT_SYMBOL(hwrng_get_first);
 
 int hwrng_register(struct device *dev, struct hwrng *rng)
 {
diff --git a/drivers/mtd/core.c b/drivers/mtd/core.c
index bb579a8f5249..922105944d34 100644
--- a/drivers/mtd/core.c
+++ b/drivers/mtd/core.c
@@ -26,6 +26,7 @@
 static LIST_HEAD(mtd_register_hooks);
 
 DEFINE_DEV_CLASS(mtd_class, "mtd");
+EXPORT_SYMBOL(mtd_class);
 
 /**
  * mtd_buf_all_ff - check if buffer contains only 0xff
diff --git a/drivers/net/dsa.c b/drivers/net/dsa.c
index 667297e8fea3..8eb12522999f 100644
--- a/drivers/net/dsa.c
+++ b/drivers/net/dsa.c
@@ -7,6 +7,7 @@
 #include <param.h>
 
 LIST_HEAD(dsa_switch_list);
+EXPORT_SYMBOL(dsa_switch_list);
 
 u32 dsa_user_ports(struct dsa_switch *ds)
 {
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 8e1cf400e5d8..0047bf188dd2 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -38,6 +38,7 @@ struct nvmem_cell {
 };
 
 DEFINE_DEV_CLASS(nvmem_class, "nvmem");
+EXPORT_SYMBOL(nvmem_class);
 
 void nvmem_devices_print(void)
 {
diff --git a/drivers/of/base.c b/drivers/of/base.c
index a26c1faa41d5..54fd458bd9a1 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -294,7 +294,7 @@ int of_alias_get_free_id(const char *stem)
 
        return id + 1;
 }
-EXPORT_SYMBOL_GPL(of_alias_get_highest_id);
+EXPORT_SYMBOL_GPL(of_alias_get_free_id);
 
 int of_alias_get_id_from(struct device_node *root, struct device_node *np,
                         const char *stem)
@@ -2072,6 +2072,7 @@ struct device_node *of_get_root_node(void)
 {
        return root_node;
 }
+EXPORT_SYMBOL(of_get_root_node);
 
 int of_set_root_node(struct device_node *node)
 {
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index e6370b5c7f6e..32624fe05b56 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -48,6 +48,7 @@ void pci_controller_init(struct pci_controller *hose)
 
        of_pci_bridge_init(hose->parent, hose);
 }
+EXPORT_SYMBOL(pci_controller_init);
 
 void register_pci_controller(struct pci_controller *hose)
 {
@@ -85,6 +86,7 @@ void register_pci_controller(struct pci_controller *hose)
 
        return;
 }
+EXPORT_SYMBOL(register_pci_controller);
 
 /*
  *  Wrappers for all PCI configuration access functions.  They just check
diff --git a/drivers/pinctrl/pinctrl.c b/drivers/pinctrl/pinctrl.c
index 2f85a0f08f08..01567aa5ae97 100644
--- a/drivers/pinctrl/pinctrl.c
+++ b/drivers/pinctrl/pinctrl.c
@@ -30,6 +30,7 @@ struct pinctrl_consumer_info {
 };
 
 LIST_HEAD(pinctrl_list);
+EXPORT_SYMBOL(pinctrl_list);
 
 static struct pinctrl_device *pin_to_pinctrl(unsigned int pin)
 {
diff --git a/drivers/video/fb.c b/drivers/video/fb.c
index 939368a0de68..bfc075039e9e 100644
--- a/drivers/video/fb.c
+++ b/drivers/video/fb.c
@@ -10,6 +10,7 @@
 #include <init.h>
 
 DEFINE_DEV_CLASS(fb_class, "fb");
+EXPORT_SYMBOL(fb_class);
 
 static int fb_ioctl(struct cdev* cdev, unsigned int req, void *data)
 {
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index 3157cc90d514..b72c7346e6a8 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -50,6 +50,7 @@ bool pstore_is_ready(void)
 {
        return pstore_ready;
 }
+EXPORT_SYMBOL(pstore_is_ready);
 
 void pstore_log(const char *str)
 {
diff --git a/lib/parameter.c b/lib/parameter.c
index bf5dbbb05e6b..1243a12e8701 100644
--- a/lib/parameter.c
+++ b/lib/parameter.c
@@ -86,6 +86,7 @@ const char *bobject_get_param(bobject_t _bobj, const char 
*name)
 
        return param->get(bobj, param);
 }
+EXPORT_SYMBOL(bobject_get_param);
 
 /**
  * bobject_set_param - set a parameter of a barebox object to a new value
diff --git a/lib/string.c b/lib/string.c
index a55f98990032..302f87a60422 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -684,6 +684,7 @@ EXPORT_SYMBOL(__nokasan_default_memset);
 #ifndef __HAVE_ARCH_MEMSET
 void *memset(void *s, int c, size_t count) __alias(__default_memset);
 void *__memset(void *s, int c, size_t count) __alias(__default_memset);
+EXPORT_SYMBOL(memset);
 #endif
 
 /**
@@ -723,6 +724,7 @@ void *memcpy(void * dest, const void *src, size_t count)
        __alias(__default_memcpy);
 void *__memcpy(void * dest, const void *src, size_t count)
        __alias(__default_memcpy);
+EXPORT_SYMBOL(memcpy);
 #endif
 
 void *mempcpy(void *dest, const void *src, size_t count)
diff --git a/lib/stringlist.c b/lib/stringlist.c
index 908fa3683c36..96e06c288d28 100644
--- a/lib/stringlist.c
+++ b/lib/stringlist.c
@@ -27,6 +27,7 @@ int string_list_add(struct string_list *sl, const char *str)
 
        return 0;
 }
+EXPORT_SYMBOL(string_list_add);
 
 int string_list_add_asprintf(struct string_list *sl, const char *fmt, ...)
 {
@@ -50,6 +51,7 @@ int string_list_add_asprintf(struct string_list *sl, const 
char *fmt, ...)
 
        return 0;
 }
+EXPORT_SYMBOL(string_list_add_asprintf);
 
 int string_list_add_sorted(struct string_list *sl, const char *str)
 {
@@ -126,6 +128,7 @@ char *string_list_join(const struct string_list *sl, const 
char *joinstr)
 
        return str;
 }
+EXPORT_SYMBOL(string_list_join);
 
 void string_list_print_by_column(struct string_list *sl)
 {
diff --git a/lib/ucs2_string.c b/lib/ucs2_string.c
index db3f34f6b70c..6f027010d3a5 100644
--- a/lib/ucs2_string.c
+++ b/lib/ucs2_string.c
@@ -113,7 +113,7 @@ ucs2_strcmp(const ucs2_char_t *a, const ucs2_char_t *b)
 {
        return ucs2_strncmp(a, b, ~0UL);
 }
-EXPORT_SYMBOL(ucs2_strncmp);
+EXPORT_SYMBOL(ucs2_strcmp);
 
 unsigned long
 ucs2_utf8size(const ucs2_char_t *src)
diff --git a/net/eth.c b/net/eth.c
index 857bd2ee70dd..4201ed1c6b66 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -22,6 +22,7 @@
 #include <linux/stat.h>
 
 DEFINE_DEV_CLASS(eth_class, "eth");
+EXPORT_SYMBOL(eth_class);
 
 LIST_HEAD(ethaddr_list);
 
diff --git a/net/net.c b/net/net.c
index 9c5999604b67..60f325ec63de 100644
--- a/net/net.c
+++ b/net/net.c
@@ -364,6 +364,7 @@ IPaddr_t net_get_ip(struct eth_device *edev)
 {
        return edev->ipaddr;
 }
+EXPORT_SYMBOL(net_get_ip);
 
 void net_set_netmask(struct eth_device *edev, IPaddr_t nm)
 {
-- 
2.47.3


Reply via email to