* [PATCH 2/2] oprofile: fix linker errors
@ 2010-10-14 15:31 Anand Gadiyar
2010-10-14 15:31 ` [PATCH 1/2] oprofile: include platform_device.h to fix build break Anand Gadiyar
0 siblings, 1 reply; 3+ messages in thread
From: Anand Gadiyar @ 2010-10-14 15:31 UTC (permalink / raw)
To: oprofile-list, linux-kernel; +Cc: Anand Gadiyar, Will Deacon, Robert Richter
Commit e9677b3ce (oprofile, ARM: Use oprofile_arch_exit() to
cleanup on failure) caused oprofile_perf_exit to be called
in the cleanup path of oprofile_perf_init. The __exit tag
for oprofile_perf_exit should therefore be dropped.
The same has to be done for exit_driverfs as well, as this
function is called from oprofile_perf_exit. Else, we get
the following two linker errors.
LD .tmp_vmlinux1
`oprofile_perf_exit' referenced in section `.init.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o
make: *** [.tmp_vmlinux1] Error 1
LD .tmp_vmlinux1
`exit_driverfs' referenced in section `.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o
make: *** [.tmp_vmlinux1] Error 1
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Robert Richter <robert.richter@amd.com>
---
drivers/oprofile/oprofile_perf.c | 2 +-
include/linux/oprofile.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: mainline/drivers/oprofile/oprofile_perf.c
===================================================================
--- mainline.orig/drivers/oprofile/oprofile_perf.c
+++ mainline/drivers/oprofile/oprofile_perf.c
@@ -236,7 +236,7 @@ static int __init init_driverfs(void)
return ret;
}
-static void __exit exit_driverfs(void)
+static void exit_driverfs(void)
{
platform_device_unregister(oprofile_pdev);
platform_driver_unregister(&oprofile_driver);
Index: mainline/include/linux/oprofile.h
===================================================================
--- mainline.orig/include/linux/oprofile.h
+++ mainline/include/linux/oprofile.h
@@ -188,7 +188,7 @@ int oprofile_write_commit(struct op_entr
#ifdef CONFIG_PERF_EVENTS
int __init oprofile_perf_init(struct oprofile_operations *ops);
-void __exit oprofile_perf_exit(void);
+void oprofile_perf_exit(void);
char *op_name_from_perf_id(void);
#endif /* CONFIG_PERF_EVENTS */
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] oprofile: include platform_device.h to fix build break
2010-10-14 15:31 [PATCH 2/2] oprofile: fix linker errors Anand Gadiyar
@ 2010-10-14 15:31 ` Anand Gadiyar
2010-10-15 12:46 ` Robert Richter
0 siblings, 1 reply; 3+ messages in thread
From: Anand Gadiyar @ 2010-10-14 15:31 UTC (permalink / raw)
To: oprofile-list, linux-kernel
Cc: Anand Gadiyar, Matt Fleming, Will Deacon, Robert Richter
oprofile_perf.c needs to include platform_device.h
Otherwise we get the following build break.
CC arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.o
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: 'struct platform_device' declared inside parameter list
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: its scope is only this definition or declaration, which is probably not what you want
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:201: warning: 'struct platform_device' declared inside parameter list
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:210: error: variable 'oprofile_driver' has initializer but incomplete type
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: unknown field 'driver' specified in initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: extra brace group at end of initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: (near initialization for 'oprofile_driver')
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: excess elements in struct initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: (near initialization for 'oprofile_driver')
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: error: unknown field 'resume' specified in initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: excess elements in struct initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: (near initialization for 'oprofile_driver')
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: error: unknown field 'suspend' specified in initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: excess elements in struct initializer
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: (near initialization for 'oprofile_driver')
arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c: In function 'init_driverfs':
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Robert Richter <robert.richter@amd.com>
---
This build break was seen on linux-next as of 20101014, with
a custom config for OMAP4
drivers/oprofile/oprofile_perf.c | 1 +
1 file changed, 1 insertion(+)
Index: mainline/drivers/oprofile/oprofile_perf.c
===================================================================
--- mainline.orig/drivers/oprofile/oprofile_perf.c
+++ mainline/drivers/oprofile/oprofile_perf.c
@@ -4,6 +4,7 @@
* Perf-events backend for OProfile.
*/
#include <linux/perf_event.h>
+#include <linux/platform_device.h>
#include <linux/oprofile.h>
#include <linux/slab.h>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] oprofile: include platform_device.h to fix build break
2010-10-14 15:31 ` [PATCH 1/2] oprofile: include platform_device.h to fix build break Anand Gadiyar
@ 2010-10-15 12:46 ` Robert Richter
0 siblings, 0 replies; 3+ messages in thread
From: Robert Richter @ 2010-10-15 12:46 UTC (permalink / raw)
To: Anand Gadiyar
Cc: oprofile-list@lists.sf.net, linux-kernel@vger.kernel.org,
Matt Fleming, Will Deacon
On 14.10.10 11:31:43, Anand Gadiyar wrote:
> oprofile_perf.c needs to include platform_device.h
> Otherwise we get the following build break.
>
> CC arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.o
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: 'struct platform_device' declared inside parameter list
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: its scope is only this definition or declaration, which is probably not what you want
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:201: warning: 'struct platform_device' declared inside parameter list
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:210: error: variable 'oprofile_driver' has initializer but incomplete type
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: unknown field 'driver' specified in initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: extra brace group at end of initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: (near initialization for 'oprofile_driver')
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: excess elements in struct initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: (near initialization for 'oprofile_driver')
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: error: unknown field 'resume' specified in initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: excess elements in struct initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: (near initialization for 'oprofile_driver')
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: error: unknown field 'suspend' specified in initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: excess elements in struct initializer
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: (near initialization for 'oprofile_driver')
> arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c: In function 'init_driverfs':
>
> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
> Cc: Matt Fleming <matt@console-pimps.org>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Robert Richter <robert.richter@amd.com>
I applied both patches to the oprofile/core branch. Thanks Anand.
-Robert
--
Advanced Micro Devices, Inc.
Operating System Research Center
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-10-15 12:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-14 15:31 [PATCH 2/2] oprofile: fix linker errors Anand Gadiyar
2010-10-14 15:31 ` [PATCH 1/2] oprofile: include platform_device.h to fix build break Anand Gadiyar
2010-10-15 12:46 ` Robert Richter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.