Bug#1099302: linux-source: People still can avoid multiple definitions symbol on loader.
Package: linux-source
Severity: normal
Tags: patch
X-Debbugs-Cc: corcodel.marian@gmail.com
Hi
Bellow i explain simple method used only for research purpose used as
countermeasure in order to run MODULE_DEVICE_TABLE macro whithout .ko file,
just fixing stringfy problems ,like:
ld: drivers/usb/host/ehci-pci.o:(.rodata+0x0): multiple definition of
`__mod_pci__pci_ids_device_table';
drivers/tty/serial/8250/8250_mid.o:(.rodata+0x0): first defined here
ld: drivers/usb/host/ohci-pci.o:(.rodata+0x0): multiple definition of
`__mod_pci__pci_ids_device_table';
drivers/tty/serial/8250/8250_mid.o:(.rodata+0x0): first defined here
-- System Information:
Debian Release: 12.9
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.12.5+ (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages linux-source depends on:
pn linux-source-6.1 <none>
linux-source recommends no packages.
linux-source suggests no packages.
>From 50aca464b8042c0805431cf1bd6ea9dc946ee481 Mon Sep 17 00:00:00 2001
From: Corcodel Marian <corcodel.marian@gmail.com>
Date: Sat, 1 Mar 2025 23:56:17 +0100
Subject: [PATCH] Avoid multiple definition on loader
Short example how to avoid multiple definition on loader, problems stringfy.
---
drivers/tty/serial/8250/8250_lpss.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_lpss.c b/drivers/tty/serial/8250/8250_lpss.c
index 776ec1ef2..05aebfdc5 100644
--- a/drivers/tty/serial/8250/8250_lpss.c
+++ b/drivers/tty/serial/8250/8250_lpss.c
@@ -402,7 +402,7 @@ static const struct lpss8250_board qrk_board = {
.exit = qrk_serial_exit,
};
-static const struct pci_device_id pci_ids[] = {
+static const struct pci_device_id pci_idsa[] = {
{ PCI_DEVICE_DATA(INTEL, QRK_UARTx, &qrk_board) },
{ PCI_DEVICE_DATA(INTEL, EHL_UART0, &ehl_board) },
{ PCI_DEVICE_DATA(INTEL, EHL_UART1, &ehl_board) },
@@ -418,11 +418,11 @@ static const struct pci_device_id pci_ids[] = {
{ PCI_DEVICE_DATA(INTEL, BDW_UART2, &byt_board) },
{ }
};
-MODULE_DEVICE_TABLE(pci, pci_ids);
+MODULE_DEVICE_TABLE(pci, pci_idsa);
static struct pci_driver lpss8250_pci_driver = {
.name = "8250_lpss",
- .id_table = pci_ids,
+ .id_table = pci_idsa,
.probe = lpss8250_probe,
.remove = lpss8250_remove,
};
--
2.39.5
Reply to: