solaris 'as' problem

Kenji Miyake kenji@miyake.org
Wed Aug 15 16:02:01 2001


 Hi,
 I have some compiling problem gpg1.0.6 in solaris2.5.1(x86) and solved.


--- ./mpi/i386/syntax.h.org	Wed May  2 02:40:53 2001
+++ ./mpi/i386/syntax.h	Mon Aug 13 16:47:48 2001
@@ -50,6 +50,25 @@
 #define GLOBL .globl
 #endif
 
+#if defined(SUN_X86_SYNTAX)
+#define MEM(base)(base)
+#define MEM_DISP(base,displacement)displacement(R(base))
+#define MEM_INDEX(base,index,size)(R(base),R(index),size)
+#ifdef __STDC__
+#define R(r) _R(r)
+#define _R(r) %##r
+#define INSN1(mnemonic,size_suffix,dst)mnemonic##size_suffix dst
+#define INSN2(mnemonic,size_suffix,dst,src)mnemonic##size_suffix src,dst
+#else
+#define R(r) %/**/r
+#define INSN1(mnemonic,size_suffix,dst)mnemonic/**/size_suffix dst
+#define INSN2(mnemonic,size_suffix,dst,src)mnemonic/**/size_suffix src,dst
+#endif
+#define TEXT .text
+#define ALIGN(log) .align 1<<log
+#define GLOBL .globl
+#endif
+
 #ifdef INTEL_SYNTAX
 #define R(r) r
 #define MEM(base)[base]
--- ./mpi/i386/mpih-add1.S.org	Sun Apr 29 22:04:57 2001
+++ ./mpi/i386/mpih-add1.S	Wed Aug 15 22:05:54 2001
@@ -71,11 +71,19 @@
 	call	L0
 L0:	leal	(%eax,%eax,8),%eax
 	addl	(%esp),%eax
+#ifdef SUN_X86_SYNTAX
+	addl	$[Loop-L0-3],%eax
+#else
 	addl	$(Loop-L0-3),%eax
+#endif
 	addl	$4,%esp
 #else
 /* Calculate start address in loop for non-PIC.  */
+#ifdef SUN_X86_SYNTAX
+	leal	[Loop - 3](%eax,%eax,8),%eax
+#else
 	leal	(Loop - 3)(%eax,%eax,8),%eax
+#endif
 #endif
 	jmp	*%eax			/* jump into loop */
 	ALIGN (3)
--- ./mpi/i386/mpih-sub1.S.org	Sun Apr 29 22:06:53 2001
+++ ./mpi/i386/mpih-sub1.S	Wed Aug 15 22:06:49 2001
@@ -72,11 +72,19 @@
 	call	L0
 L0:	leal	(%eax,%eax,8),%eax
 	addl	(%esp),%eax
+#ifdef SUN_X86_SYNTAX
+	addl	$[Loop-L0-3],%eax
+#else
 	addl	$(Loop-L0-3),%eax
+#endif
 	addl	$4,%esp
 #else
 /* Calculate start address in loop for non-PIC.  */
+#ifdef SUN_X86_SYNTAX
+	leal	[Loop - 3](%eax,%eax,8),%eax
+#else
 	leal	(Loop - 3)(%eax,%eax,8),%eax
+#endif
 #endif
 	jmp	*%eax			/* jump into loop */
 	ALIGN (3)
--- ./mpi/i386/mpih-lshift.S.org	Sun Apr 29 22:05:07 2001
+++ ./mpi/i386/mpih-lshift.S	Mon Aug 13 19:23:24 2001
@@ -57,21 +57,33 @@
 
 	movl	(%esi,%edx,4),%ebx	/* read most significant limb */
 	xorl	%eax,%eax
+#ifdef SUN_X86_SYNTAX
+	shldl	%ebx,%eax		/* compute carry limb */
+#else
 	shldl	%cl,%ebx,%eax		/* compute carry limb */
+#endif
 	decl	%edx
 	jz	Lend
 	pushl	%eax			/* push carry limb onto stack */
-	testb	$1,%edx
+	testb	$1,%dl
 	jnz	L1			/* enter loop in the middle */
 	movl	%ebx,%eax
 
 	ALIGN (3)
 Loop:	movl	(%esi,%edx,4),%ebx	/* load next lower limb */
+#ifdef SUN_X86_SYNTAX
+	shldl	%ebx,%eax		/* compute result limb */
+#else
 	shldl	%cl,%ebx,%eax		/* compute result limb */
+#endif
 	movl	%eax,(%edi,%edx,4)	/* store it */
 	decl	%edx
 L1:	movl	(%esi,%edx,4),%eax
+#ifdef SUN_X86_SYNTAX
+	shldl	%eax,%ebx
+#else
 	shldl	%cl,%eax,%ebx
+#endif
 	movl	%ebx,(%edi,%edx,4)
 	decl	%edx
 	jnz	Loop
--- ./mpi/i386/mpih-rshift.S.org	Sun Apr 29 22:06:44 2001
+++ ./mpi/i386/mpih-rshift.S	Mon Aug 13 19:23:46 2001
@@ -60,21 +60,33 @@
 
 	movl	(%esi,%edx,4),%ebx	/* read least significant limb */
 	xorl	%eax,%eax
+#ifdef SUN_X86_SYNTAX
+	shrdl	%ebx,%eax		/* compute carry limb */
+#else
 	shrdl	%cl,%ebx,%eax		/* compute carry limb */
+#endif
 	incl	%edx
 	jz	Lend2
 	pushl	%eax			/* push carry limb onto stack */
-	testb	$1,%edx
+	testb	$1,%dl
 	jnz	L2			/* enter loop in the middle */
 	movl	%ebx,%eax
 
 	ALIGN (3)
 Loop2:	 movl	 (%esi,%edx,4),%ebx	 /* load next higher limb */
+#ifdef SUN_X86_SYNTAX
+	shrdl	%ebx,%eax		/* compute result limb */
+#else
 	shrdl	%cl,%ebx,%eax		/* compute result limb */
+#endif
 	movl	%eax,(%edi,%edx,4)	/* store it */
 	incl	%edx
 L2:	movl	(%esi,%edx,4),%eax
+#ifdef SUN_X86_SYNTAX
+	shrdl	%eax,%ebx
+#else
 	shrdl	%cl,%eax,%ebx
+#endif
 	movl	%ebx,(%edi,%edx,4)
 	incl	%edx
 	jnz	Loop2
--- ./mpi/config.links.org	Sun Apr 29 20:36:18 2001
+++ ./mpi/config.links	Wed Aug 15 22:15:47 2001
@@ -80,6 +80,11 @@
 	cat  $srcdir/mpi/i386/syntax.h	 >>./mpi/asm-syntax.h
 	path="i586 i386"
 	;;
+    i[3467]86*-*-solaris2*)
+	echo '#define SUN_X86_SYNTAX' >>./mpi/asm-syntax.h
+	cat  $srcdir/mpi/i386/syntax.h	    >>./mpi/asm-syntax.h
+	path="i386"
+	;;
     i[3467]86*-*-*)
 	echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
 	cat  $srcdir/mpi/i386/syntax.h	    >>./mpi/asm-syntax.h