Skip to contentSkip to conversation

arch/unicore32/kernel/setup.c: add generic 'screen_info' to avoid compiling failure

PATCH Superseded Chen Gang 2 participants 9 messages May 21, 2014 – May 22, 2014

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Chen Gang

author
#0 lore raw

PATCH 1/1 arch/unicore32/kernel/setup.c: add generic 'screen_info' to avoid compiling failure

Add generic 'screen_info' just like another architectures have done (e.g. tile, sh, score, ia64, hexagon, and cris).

The related error (with allmodconfig under unicore32):

LD init/built-in.o
drivers/built-in.o: In function `vgacon_save_screen':
powercap_sys.c:(.text+0x21788): undefined reference to screen_info' drivers/built-in.o: In function vgacon_resize':
powercap_sys.c:(.text+0x21b54): undefined reference to screen_info' drivers/built-in.o: In function vgacon_switch':
powercap_sys.c:(.text+0x21cb4): undefined reference to screen_info' drivers/built-in.o: In function vgacon_init':
powercap_sys.c:(.text+0x2296c): undefined reference to screen_info' drivers/built-in.o: In function vgacon_startup':
powercap_sys.c:(.text+0x22e80): undefined reference to `screen_info'

---
 arch/unicore32/kernel/setup.c | 2 ++
 1 file changed, 2 insertions(+)
arch/unicore32/kernel/setup.c +2 -0
index 87adbf5..94bc4bc 100644
@@ -53,6 +53,8 @@ struct stack {
 
 static struct stack stacks[NR_CPUS];
 
+struct screen_info screen_info;
+
 char elf_platform[ELF_PLATFORM_SIZE];
 EXPORT_SYMBOL(elf_platform);
 
Signature · 1 line
1.9.2.459.g68773ac
#1 lore raw
Quoted 28 lines · ----- Chen Gang

Add generic 'screen_info' just like another architectures have done (e.g. tile, sh, score, ia64, hexagon, and cris).

The related error (with allmodconfig under unicore32):

LD init/built-in.o
drivers/built-in.o: In function `vgacon_save_screen':
powercap_sys.c:(.text+0x21788): undefined reference to screen_info' drivers/built-in.o: In function vgacon_resize':
powercap_sys.c:(.text+0x21b54): undefined reference to screen_info' drivers/built-in.o: In function vgacon_switch':
powercap_sys.c:(.text+0x21cb4): undefined reference to screen_info' drivers/built-in.o: In function vgacon_init':
powercap_sys.c:(.text+0x2296c): undefined reference to screen_info' drivers/built-in.o: In function vgacon_startup':
powercap_sys.c:(.text+0x22e80): undefined reference to `screen_info'

---
 arch/unicore32/kernel/setup.c | 2 ++
 1 file changed, 2 insertions(+)
arch/unicore32/kernel/setup.c +0 -0
index 87adbf5..94bc4bc 100644

arch/unicore32/kernel/setup.c struct stack { · line 57

Quoted 5 lines
arch/unicore32/kernel/setup.c +2 -0
@@ -53,6 +53,8 @@ struct stack {
 
 static struct stack stacks[NR_CPUS];
 
+struct screen_info screen_info;
+

could be as following if it's only used by vga console:

+#ifdef CONFIG_VGA_CONSOLE
+struct screen_info screen_info;
+#endif

Quoted 5 lines
arch/unicore32/kernel/setup.c +0 -0
 char elf_platform[ELF_PLATFORM_SIZE];
 EXPORT_SYMBOL(elf_platform);
 
Signature · 1 line
1.9.2.459.g68773ac
author
#2 lore raw
Quoted 39 lines · 管雪涛
Quoted 28 lines · ----- Chen Gang

Add generic 'screen_info' just like another architectures have done (e.g. tile, sh, score, ia64, hexagon, and cris).

The related error (with allmodconfig under unicore32):

LD init/built-in.o
drivers/built-in.o: In function `vgacon_save_screen':
powercap_sys.c:(.text+0x21788): undefined reference to screen_info' drivers/built-in.o: In function vgacon_resize':
powercap_sys.c:(.text+0x21b54): undefined reference to screen_info' drivers/built-in.o: In function vgacon_switch':
powercap_sys.c:(.text+0x21cb4): undefined reference to screen_info' drivers/built-in.o: In function vgacon_init':
powercap_sys.c:(.text+0x2296c): undefined reference to screen_info' drivers/built-in.o: In function vgacon_startup':
powercap_sys.c:(.text+0x22e80): undefined reference to `screen_info'

---
 arch/unicore32/kernel/setup.c | 2 ++
 1 file changed, 2 insertions(+)
arch/unicore32/kernel/setup.c +0 -0
index 87adbf5..94bc4bc 100644

arch/unicore32/kernel/setup.c struct stack { · line 57

Quoted 5 lines
arch/unicore32/kernel/setup.c +2 -0
@@ -53,6 +53,8 @@ struct stack {
 
 static struct stack stacks[NR_CPUS];
 
+struct screen_info screen_info;
+

could be as following if it's only used by vga console:

Review

Quoted 3 lines
(quoted diff) +3 -0
+#ifdef CONFIG_VGA_CONSOLE
+struct screen_info screen_info;
+#endif

Yeah, I shall send patch v2 for it (within this week). And also thank you for your review the other patches.

BTW: I guess, it only leaves 2 kernel related issues for allmodconfig:

- one for 'find_first*', 'cpuc_coherent_kern_range' and 'pm_power_off'. I guess, we can export their symbol explicitly to fix this issue.

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

The related errors:

ERROR: "clk_round_rate" [sound/spi/snd-at73c213.ko] undefined!
ERROR: "clk_set_parent" [sound/soc/jz4740/snd-soc-jz4740-i2s.ko] undefined!
ERROR: "clk_round_rate" [sound/soc/fsl/snd-soc-fsl-ssi.ko] undefined!
ERROR: "clk_round_rate" [sound/soc/fsl/snd-soc-fsl-spdif.ko] undefined!
ERROR: "find_first_bit" [sound/soc/codecs/snd-soc-uda1380.ko] undefined!
ERROR: "find_first_zero_bit" [net/sctp/sctp.ko] undefined!
ERROR: "find_first_bit" [net/phonet/phonet.ko] undefined!
ERROR: "find_first_zero_bit" [net/nfc/nfc.ko] undefined!
ERROR: "find_first_zero_bit" [net/netfilter/nf_tables.ko] undefined!
ERROR: "find_first_bit" [net/mac80211/mac80211.ko] undefined!
ERROR: "find_first_zero_bit" [net/bridge/bridge.ko] undefined!
ERROR: "find_first_bit" [net/bridge/bridge.ko] undefined!
ERROR: "find_first_zero_bit" [fs/reiserfs/reiserfs.ko] undefined!
ERROR: "find_first_bit" [fs/ocfs2/ocfs2.ko] undefined!
ERROR: "find_first_zero_bit" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
ERROR: "find_first_bit" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
ERROR: "find_first_zero_bit" [fs/nfs/nfsv4.ko] undefined!
ERROR: "find_first_zero_bit" [fs/minix/minix.ko] undefined!
ERROR: "find_first_bit" [fs/hfsplus/hfsplus.ko] undefined!
ERROR: "find_first_zero_bit" [fs/gfs2/gfs2.ko] undefined!
ERROR: "find_first_zero_bit" [fs/bfs/bfs.ko] undefined!
ERROR: "find_first_zero_bit" [drivers/uwb/uwb.ko] undefined!
...

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
#3 lore raw
Quoted 8 lines · ----- Chen Gang

Yeah, I shall send patch v2 for it (within this week). And also thank you for your review the other patches.

BTW: I guess, it only leaves 2 kernel related issues for allmodconfig:

- one for 'find_first*', 'cpuc_coherent_kern_range' and 'pm_power_off'. I guess, we can export their symbol explicitly to fix this issue.

My suggestion:
find_first_* could export themselves in lib/find_first.c, so each archs can use it.
anyway, we can first add them in unicore32, and then make it a generic lib.
what's the problem with cpuc_coherent_kern_range? in fact, I'll remove it later. pm_power_off need be exported.

Quoted 3 lines

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

Maybe, COMMON_CLK should be selected. I'm not sure.

Quoted 32 lines

The related errors:

ERROR: "clk_round_rate" [sound/spi/snd-at73c213.ko] undefined!
ERROR: "clk_set_parent" [sound/soc/jz4740/snd-soc-jz4740-i2s.ko] undefined!
ERROR: "clk_round_rate" [sound/soc/fsl/snd-soc-fsl-ssi.ko] undefined!
ERROR: "clk_round_rate" [sound/soc/fsl/snd-soc-fsl-spdif.ko] undefined!
ERROR: "find_first_bit" [sound/soc/codecs/snd-soc-uda1380.ko] undefined!
ERROR: "find_first_zero_bit" [net/sctp/sctp.ko] undefined!
ERROR: "find_first_bit" [net/phonet/phonet.ko] undefined!
ERROR: "find_first_zero_bit" [net/nfc/nfc.ko] undefined!
ERROR: "find_first_zero_bit" [net/netfilter/nf_tables.ko] undefined!
ERROR: "find_first_bit" [net/mac80211/mac80211.ko] undefined!
ERROR: "find_first_zero_bit" [net/bridge/bridge.ko] undefined!
ERROR: "find_first_bit" [net/bridge/bridge.ko] undefined!
ERROR: "find_first_zero_bit" [fs/reiserfs/reiserfs.ko] undefined!
ERROR: "find_first_bit" [fs/ocfs2/ocfs2.ko] undefined!
ERROR: "find_first_zero_bit" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
ERROR: "find_first_bit" [fs/ocfs2/cluster/ocfs2_nodemanager.ko] undefined!
ERROR: "find_first_zero_bit" [fs/nfs/nfsv4.ko] undefined!
ERROR: "find_first_zero_bit" [fs/minix/minix.ko] undefined!
ERROR: "find_first_bit" [fs/hfsplus/hfsplus.ko] undefined!
ERROR: "find_first_zero_bit" [fs/gfs2/gfs2.ko] undefined!
ERROR: "find_first_zero_bit" [fs/bfs/bfs.ko] undefined!
ERROR: "find_first_zero_bit" [drivers/uwb/uwb.ko] undefined!
...

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
author
#4 lore raw
Quoted 8 lines · 管雪涛
Quoted 6 lines · ----- Chen Gang

Yeah, I shall send patch v2 for it (within this week). And also thank you for your review the other patches.

BTW: I guess, it only leaves 2 kernel related issues for allmodconfig:

Quoted 9 lines
Quoted 2 lines

- one for 'find_first*', 'cpuc_coherent_kern_range' and 'pm_power_off'. I guess, we can export their symbol explicitly to fix this issue.

My suggestion:
find_first_* could export themselves in lib/find_first.c, so each archs can use it.
anyway, we can first add them in unicore32, and then make it a generic lib.
what's the problem with cpuc_coherent_kern_range? in fact, I'll remove it later. pm_power_off need be exported.

Thank you for your suggestions, and if you have already fixed them (maybe you have done), please let me know. Or I shall send them within this month.

The related error for 'cpu_coherent_kern_rage':

ERROR: "__cpuc_coherent_kern_range" [drivers/misc/lkdtm.ko] undefined!

Quoted 6 lines
Quoted 3 lines

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

Maybe, COMMON_CLK should be selected. I'm not sure.

I guess so, if you have already fix it (maybe you have done, I am not quite familiar with version merging of Linux kernel), please let me know. Or I shall process (continue think of) it within this month.

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
#5 lore raw
Quoted 33 lines · ----- Chen Gang
Quoted 8 lines · 管雪涛
Quoted 6 lines · ----- Chen Gang

Yeah, I shall send patch v2 for it (within this week). And also thank you for your review the other patches.

BTW: I guess, it only leaves 2 kernel related issues for allmodconfig:

Quoted 9 lines
Quoted 2 lines

- one for 'find_first*', 'cpuc_coherent_kern_range' and 'pm_power_off'. I guess, we can export their symbol explicitly to fix this issue.

My suggestion:
find_first_* could export themselves in lib/find_first.c, so each archs can use it.
anyway, we can first add them in unicore32, and then make it a generic lib.
what's the problem with cpuc_coherent_kern_range? in fact, I'll remove it later. pm_power_off need be exported.

Thank you for your suggestions, and if you have already fixed them (maybe you have done), please let me know. Or I shall send them within this month.

The related error for 'cpu_coherent_kern_rage':

ERROR: "__cpuc_coherent_kern_range" [drivers/misc/lkdtm.ko] undefined!

Quoted 4 lines
Quoted 3 lines

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

Quoted 6 lines
Quoted 2 lines

Maybe, COMMON_CLK should be selected. I'm not sure.

I guess so, if you have already fix it (maybe you have done, I am not quite familiar with version merging of Linux kernel), please let me know. Or I shall process (continue think of) it within this month.

Ok, I'll arrange this work, but maybe finish it in next month.

Quoted 7 lines

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
author
#6 lore raw
Quoted 4 lines · 管雪涛
Quoted 3 lines · ----- Chen Gang
Quoted 3 lines
Quoted 2 lines

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

Quoted 9 lines
Quoted 6 lines
Quoted 2 lines

Maybe, COMMON_CLK should be selected. I'm not sure.

I guess so, if you have already fix it (maybe you have done, I am not quite familiar with version merging of Linux kernel), please let me know. Or I shall process (continue think of) it within this month.

Ok, I'll arrange this work, but maybe finish it in next month.

Thanks, it is OK to me.

And for this last issue of unicore32 allmodconfig, it needs COMMON_CLK, but after add it, it will generate a conflict between "arch/unicore32 /kernel/clock.c" and "drivers/clk/clk.c".

I guess it needs more thinking of about architecture related features, I am not quite sure about it, so please help fix it, when you have time, thanks.

The related error:

LD vmlinux.o
drivers/built-in.o: In function `clk_unregister':
powercap_sys.c:(.text+0xa96d0): multiple definition of clk_unregister' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3874): first defined here drivers/built-in.o: In function clk_get':
powercap_sys.c:(.text+0xa7040): multiple definition of clk_get' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3b7c): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_enable+0x0): multiple definition of __ksymtab_clk_enable' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_enable+0x0): first defined here drivers/built-in.o: In function `clk_enable':
powercap_sys.c:(.text+0xa8218): multiple definition of clk_enable' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3834): first defined here drivers/built-in.o: In function __crc_clk_enable':
powercap_sys.c:(*ABS*+0xeadcf0e8): multiple definition of __crc_clk_enable' drivers/built-in.o: In function clk_set_rate':
powercap_sys.c:(.text+0xa99f4): multiple definition of clk_set_rate' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3950): first defined here drivers/built-in.o: In function __crc_clk_get_rate':
powercap_sys.c:(*ABS*+0x8f47d06d): multiple definition of __crc_clk_get_rate' drivers/built-in.o:(___ksymtab+clk_put+0x0): multiple definition of __ksymtab_clk_put' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_put+0x0): first defined here drivers/built-in.o: In function `__crc_clk_get':
powercap_sys.c:(*ABS*+0x7bf53891): multiple definition of __crc_clk_get' drivers/built-in.o:(___ksymtab_gpl+clk_unregister+0x0): multiple definition of __ksymtab_clk_unregister' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_unregister+0x0): first defined here drivers/built-in.o:(___ksymtab+clk_get+0x0): multiple definition of __ksymtab_clk_get' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_get+0x0): first defined here drivers/built-in.o: In function __crc_clk_disable':
powercap_sys.c:(*ABS*+0xaf08af3a): multiple definition of __crc_clk_disable' drivers/built-in.o: In function __crc_clk_register':
powercap_sys.c:(*ABS*+0x9524c67b): multiple definition of __crc_clk_register' drivers/built-in.o: In function clk_put':
powercap_sys.c:(.text+0xa6e08): multiple definition of clk_put' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3820): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_disable+0x0): multiple definition of __ksymtab_clk_disable' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_disable+0x0): first defined here drivers/built-in.o: In function `clk_disable':
powercap_sys.c:(.text+0xa82b4): multiple definition of clk_disable' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3848): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_set_rate+0x0): multiple definition of __ksymtab_clk_set_rate' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_set_rate+0x0): first defined here drivers/built-in.o: In function `clk_register':
powercap_sys.c:(.text+0xa9fc0): multiple definition of clk_register' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x38ac): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_get_rate+0x0): multiple definition of __ksymtab_clk_get_rate' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_get_rate+0x0): first defined here drivers/built-in.o: In function `__crc_clk_unregister':
powercap_sys.c:(*ABS*+0x75abf69c): multiple definition of __crc_clk_unregister' drivers/built-in.o: In function clk_get_rate':
powercap_sys.c:(.text+0xa8efc): multiple definition of clk_get_rate' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x385c): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_register+0x0): multiple definition of __ksymtab_clk_register' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_register+0x0): first defined here drivers/built-in.o: In function `__crc_clk_set_rate':
powercap_sys.c:(*ABS*+0x1cdb742b): multiple definition of `__crc_clk_set_rate'
make: *** [vmlinux] Error 1

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
#7 lore raw
Quoted 12 lines · ----- Chen Gang
Quoted 11 lines · 管雪涛
Quoted 9 lines · ----- Chen Gang
Quoted 5 lines
Quoted 2 lines

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

Maybe, COMMON_CLK should be selected. I'm not sure.

I guess so, if you have already fix it (maybe you have done, I am not quite familiar with version merging of Linux kernel), please let me know. Or I shall process (continue think of) it within this month.

Quoted 8 lines
Quoted 2 lines

Ok, I'll arrange this work, but maybe finish it in next month.

Thanks, it is OK to me.

And for this last issue of unicore32 allmodconfig, it needs COMMON_CLK, but after add it, it will generate a conflict between "arch/unicore32 /kernel/clock.c" and "drivers/clk/clk.c".

Yes, they implement similar functions, and I need use the latter to reimplement the former.

Quoted 70 lines

I guess it needs more thinking of about architecture related features, I am not quite sure about it, so please help fix it, when you have time, thanks.

The related error:

LD vmlinux.o
drivers/built-in.o: In function `clk_unregister':
powercap_sys.c:(.text+0xa96d0): multiple definition of clk_unregister' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3874): first defined here drivers/built-in.o: In function clk_get':
powercap_sys.c:(.text+0xa7040): multiple definition of clk_get' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3b7c): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_enable+0x0): multiple definition of __ksymtab_clk_enable' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_enable+0x0): first defined here drivers/built-in.o: In function `clk_enable':
powercap_sys.c:(.text+0xa8218): multiple definition of clk_enable' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3834): first defined here drivers/built-in.o: In function __crc_clk_enable':
powercap_sys.c:(*ABS*+0xeadcf0e8): multiple definition of __crc_clk_enable' drivers/built-in.o: In function clk_set_rate':
powercap_sys.c:(.text+0xa99f4): multiple definition of clk_set_rate' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3950): first defined here drivers/built-in.o: In function __crc_clk_get_rate':
powercap_sys.c:(*ABS*+0x8f47d06d): multiple definition of __crc_clk_get_rate' drivers/built-in.o:(___ksymtab+clk_put+0x0): multiple definition of __ksymtab_clk_put' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_put+0x0): first defined here drivers/built-in.o: In function `__crc_clk_get':
powercap_sys.c:(*ABS*+0x7bf53891): multiple definition of __crc_clk_get' drivers/built-in.o:(___ksymtab_gpl+clk_unregister+0x0): multiple definition of __ksymtab_clk_unregister' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_unregister+0x0): first defined here drivers/built-in.o:(___ksymtab+clk_get+0x0): multiple definition of __ksymtab_clk_get' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_get+0x0): first defined here drivers/built-in.o: In function __crc_clk_disable':
powercap_sys.c:(*ABS*+0xaf08af3a): multiple definition of __crc_clk_disable' drivers/built-in.o: In function __crc_clk_register':
powercap_sys.c:(*ABS*+0x9524c67b): multiple definition of __crc_clk_register' drivers/built-in.o: In function clk_put':
powercap_sys.c:(.text+0xa6e08): multiple definition of clk_put' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3820): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_disable+0x0): multiple definition of __ksymtab_clk_disable' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_disable+0x0): first defined here drivers/built-in.o: In function `clk_disable':
powercap_sys.c:(.text+0xa82b4): multiple definition of clk_disable' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x3848): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_set_rate+0x0): multiple definition of __ksymtab_clk_set_rate' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_set_rate+0x0): first defined here drivers/built-in.o: In function `clk_register':
powercap_sys.c:(.text+0xa9fc0): multiple definition of clk_register' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x38ac): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_get_rate+0x0): multiple definition of __ksymtab_clk_get_rate' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_get_rate+0x0): first defined here drivers/built-in.o: In function `__crc_clk_unregister':
powercap_sys.c:(*ABS*+0x75abf69c): multiple definition of __crc_clk_unregister' drivers/built-in.o: In function clk_get_rate':
powercap_sys.c:(.text+0xa8efc): multiple definition of clk_get_rate' arch/unicore32/kernel/built-in.o:puv3-core.c:(.text+0x385c): first defined here drivers/built-in.o:(___ksymtab_gpl+clk_register+0x0): multiple definition of __ksymtab_clk_register' arch/unicore32/kernel/built-in.o:(___ksymtab+clk_register+0x0): first defined here drivers/built-in.o: In function `__crc_clk_set_rate':
powercap_sys.c:(*ABS*+0x1cdb742b): multiple definition of `__crc_clk_set_rate'
make: *** [vmlinux] Error 1

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
author
#8 lore raw
Quoted 17 lines · 管雪涛
Quoted 15 lines · ----- Chen Gang
Quoted 13 lines · 管雪涛
Quoted 9 lines · ----- Chen Gang
Quoted 5 lines
Quoted 2 lines

- the other for additional 'clk_*' which are needed when HAVE_CLK. I guess, just "copy/past" the other platforms' implementation is OK.

Maybe, COMMON_CLK should be selected. I'm not sure.

I guess so, if you have already fix it (maybe you have done, I am not quite familiar with version merging of Linux kernel), please let me know. Or I shall process (continue think of) it within this month.

Ok, I'll arrange this work, but maybe finish it in next month.

Quoted 8 lines
Quoted 5 lines

Thanks, it is OK to me.

And for this last issue of unicore32 allmodconfig, it needs COMMON_CLK, but after add it, it will generate a conflict between "arch/unicore32 /kernel/clock.c" and "drivers/clk/clk.c".

Yes, they implement similar functions, and I need use the latter to reimplement the former.

OK, thanks. Hope it is really the last failure issue for allmodconfig under unicore32.

Quoted 10 lines
Quoted 10 lines

I guess it needs more thinking of about architecture related features, I am not quite sure about it, so please help fix it, when you have time, thanks.

The related error:

LD vmlinux.o
drivers/built-in.o: In function `clk_unregister':
powercap_sys.c:(.text+0xa96d0): multiple definition of `clk_unregister'

[...]

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed