lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <87fy2twdg5.wl%peterc@gelato.unsw.edu.au>
Date:	Thu, 09 Aug 2007 14:15:38 +1000
From:	Peter Chubb <peterc@...ato.unsw.edu.au>
To:	akpm@...gle.com, linux-kernel@...r.kernel.org
Subject: Fix compilation with gcc 4.2


gcc-4.2 is a lot more picky about its symbol handling.  EXPORT_SYMBOL
no longer works on symbols that are undefined or defined with static scope.

For example, with CONFIG_PROFILE off, I see:

  kernel/profile.c:206: error: __ksymtab_profile_event_unregister causes a section type conflict
  kernel/profile.c:205: error: __ksymtab_profile_event_register causes a section type conflict

This patch moves the EXPORTs inside the #ifdef CONFIG_PROFILE, so we
only try to export symbols that are defined.

Also, in kernel/kprobes.c there's an EXPORT_SYMBOL_GPL() for
jprobes_return, which if CONFIG_JPROBES is undefined is a static
inline and gives the same error.

And in drivers/acpi/resources/rsxface.c, there's an
ACPI_EXPORT_SYMBOPL() for a static symbol. If it's static, it's not
accessible from outside the compilation unit, so should bot be exported.

These three changes allow building a zx1_defconfig kernel with gcc 4.2
on IA64.

Signed-off-by: Peter Chubb <peterc@...ato.unsw.edu.au>

Index: linux-2.6-git/kernel/profile.c
===================================================================
--- linux-2.6-git.orig/kernel/profile.c	2007-08-09 12:10:19.921216500 +1000
+++ linux-2.6-git/kernel/profile.c	2007-08-09 12:10:26.061162039 +1000
@@ -199,11 +199,11 @@ EXPORT_SYMBOL_GPL(register_timer_hook);
 EXPORT_SYMBOL_GPL(unregister_timer_hook);
 EXPORT_SYMBOL_GPL(task_handoff_register);
 EXPORT_SYMBOL_GPL(task_handoff_unregister);
+EXPORT_SYMBOL_GPL(profile_event_register);
+EXPORT_SYMBOL_GPL(profile_event_unregister);
 
 #endif /* CONFIG_PROFILING */
 
-EXPORT_SYMBOL_GPL(profile_event_register);
-EXPORT_SYMBOL_GPL(profile_event_unregister);
 
 #ifdef CONFIG_SMP
 /*
Index: linux-2.6-gie/kernel/kprobes.c
===================================================================
--- linux-2.6-git.orig/kernel/kprobes.c	2007-08-09 12:14:48.898830198 +1000
+++ linux-2.6-git/kernel/kprobes.c	2007-08-09 14:09:50.180322576 +1000
@@ -1063,6 +1063,8 @@ EXPORT_SYMBOL_GPL(register_kprobe);
 EXPORT_SYMBOL_GPL(unregister_kprobe);
 EXPORT_SYMBOL_GPL(register_jprobe);
 EXPORT_SYMBOL_GPL(unregister_jprobe);
-EXPORT_SYMBOL_GPL(jprobe_return);
+
+#ifdef CONFIG_KPROBES
 EXPORT_SYMBOL_GPL(register_kretprobe);
 EXPORT_SYMBOL_GPL(unregister_kretprobe);
+#endif
Index: linux-2.6-git/drivers/acpi/resources/rsxface.c
===================================================================
--- linux-2.6-git.orig/drivers/acpi/resources/rsxface.c	2007-08-09 13:06:59.040346772 +1000
+++ linux-2.6-git/drivers/acpi/resources/rsxface.c	2007-08-09 13:12:03.125801491 +1000
@@ -474,8 +474,6 @@ acpi_rs_match_vendor_resource(struct acp
 	return (AE_CTRL_TERMINATE);
 }
 
-ACPI_EXPORT_SYMBOL(acpi_rs_match_vendor_resource)
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_walk_resources


--
Dr Peter Chubb     http://www.gelato.unsw.edu.au  peterc@...ato.unsw.edu.au
http://www.ertos.nicta.com.au           ERTOS within National ICT Australia

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ