Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6df4b17 authored by David Miller's avatar David Miller Committed by James Morris
Browse files

lib: Fix multiple definitions of clz_tab



Both sparc 32-bit's software divide assembler and MPILIB provide
clz_tab[] with identical contents.

Break it out into a seperate object file and select it when
SPARC32 or MPILIB is set.

Reported-by: default avatarAl Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 86f8bedc
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ config SPARC
config SPARC32
config SPARC32
	def_bool !64BIT
	def_bool !64BIT
	select GENERIC_ATOMIC64
	select GENERIC_ATOMIC64
	select CLZ_TAB


config SPARC64
config SPARC64
	def_bool 64BIT
	def_bool 64BIT
+1 −15
Original line number Original line Diff line number Diff line
@@ -17,23 +17,9 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */
Boston, MA 02111-1307, USA.  */


	.data
	.align 8
	.globl	__clz_tab
__clz_tab:
	.byte	0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
	.byte	6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
	.byte	7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	.byte	7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	.byte	8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	.byte	8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	.byte	8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	.byte	8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	.size	 __clz_tab,256
	.global .udiv

	.text
	.text
	.align 4
	.align 4
	.global .udiv
	.globl __divdi3
	.globl __divdi3
__divdi3:
__divdi3:
	save %sp,-104,%sp
	save %sp,-104,%sp
+4 −0
Original line number Original line Diff line number Diff line
@@ -279,6 +279,9 @@ config AVERAGE


	  If unsure, say N.
	  If unsure, say N.


config CLZ_TAB
	bool

config CORDIC
config CORDIC
	tristate "CORDIC algorithm"
	tristate "CORDIC algorithm"
	help
	help
@@ -287,6 +290,7 @@ config CORDIC


config MPILIB
config MPILIB
	tristate
	tristate
	select CLZ_TAB
	help
	help
	  Multiprecision maths library from GnuPG.
	  Multiprecision maths library from GnuPG.
	  It is used to implement RSA digital signature verification,
	  It is used to implement RSA digital signature verification,
+2 −0
Original line number Original line Diff line number Diff line
@@ -121,6 +121,8 @@ obj-$(CONFIG_DQL) += dynamic_queue_limits.o
obj-$(CONFIG_MPILIB) += mpi/
obj-$(CONFIG_MPILIB) += mpi/
obj-$(CONFIG_SIGNATURE) += digsig.o
obj-$(CONFIG_SIGNATURE) += digsig.o


obj-$(CONFIG_CLZ_TAB) += clz_tab.o

hostprogs-y	:= gen_crc32table
hostprogs-y	:= gen_crc32table
clean-files	:= crc32table.h
clean-files	:= crc32table.h


lib/clz_tab.c

0 → 100644
+18 −0
Original line number Original line Diff line number Diff line
const unsigned char __clz_tab[] = {
	0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5,
	    5, 5, 5, 5, 5, 5, 5, 5,
	6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
	    6, 6, 6, 6, 6, 6, 6, 6,
	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
	    7, 7, 7, 7, 7, 7, 7, 7,
	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
	    7, 7, 7, 7, 7, 7, 7, 7,
	8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
	    8, 8, 8, 8, 8, 8, 8, 8,
	8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
	    8, 8, 8, 8, 8, 8, 8, 8,
	8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
	    8, 8, 8, 8, 8, 8, 8, 8,
	8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
	    8, 8, 8, 8, 8, 8, 8, 8,
};
Loading