[gnu.emacs.bug] crt0.c problem on hpux 6.5 on hp9000s300 ...

TRANLE@INTELLICORP.COM (Minh Tran-Le) (07/06/89)

Does anybody has a correct crt0.c for gnu emacs 18.54 on hp9000s300 running
hpux 6.5 ?

It seems that some of the library files use the variable "float_loc" which seem
to be defined in the /lib/crt0.o given by hp. But that file cannot be used for
gnu emacs. 

Tran-Le.

Arpanet: tranle@intellicorp.com
Uucp:  ..sun!icmv!mtranle
-------

ange@hplb.hpl.hp.com (Andy Norman) (07/08/89)

In article <615713029.830000.TRANLE@INTELLICORP.COM> Minh Tran-Le writes:

> Does anybody has a correct crt0.c for gnu emacs 18.54 on hp9000s300 running
> hpux 6.5 ?

> It seems that some of the library files use the variable "float_loc" which seem
> to be defined in the /lib/crt0.o given by hp. But that file cannot be used for
> gnu emacs. 

Try this patch...

*** oldcrt0.c	Wed Aug 31 07:48:46 1988
--- crt0.c	Fri Jul  7 14:52:09 1989
***************
*** 444,450
     put an underscore character in its name otherwise. */ 
  
  #else /* new hp assembler */
! 
  	asm("	text");
  	asm("	global	__start");
  	asm("	global	_exit");

--- 444,450 -----
     put an underscore character in its name otherwise. */ 
  
  #else /* new hp assembler */
! #pragma OPT_LEVEL 1
  	asm("	text");
  	asm("	global	fpa_loc");
  	asm("	set	fpa_loc,0xfff08000");
***************
*** 446,451
  #else /* new hp assembler */
  
  	asm("	text");
  	asm("	global	__start");
  	asm("	global	_exit");
  	asm("	global	_main");

--- 446,453 -----
  #else /* new hp assembler */
  #pragma OPT_LEVEL 1
  	asm("	text");
+ 	asm("	global	fpa_loc");
+ 	asm("	set	fpa_loc,0xfff08000");
  	asm("	global	__start");
  	asm("	global	_exit");
  	asm("	global	_main");
***************
*** 459,464
  	asm("	fmov.l	&0x7480,%fpcr");
  #endif /* HPUX_68010 */
  	asm("skip_float:");
  	asm("	subx.w	%d1,%d1");
  	asm("	mov.w	%d1,flag_68010");
  	asm("	mov.l	4(%a7),%d0");

--- 461,468 -----
  	asm("	fmov.l	&0x7480,%fpcr");
  #endif /* HPUX_68010 */
  	asm("skip_float:");
+ 	asm("	mov.l	%a0,%d0");
+ 	asm("	add.l	%d0,%d0");
  	asm("	subx.w	%d1,%d1");
  	asm("	mov.w	%d1,flag_68010");
  	asm("	add.l	%d0,%d0");
***************
*** 461,466
  	asm("skip_float:");
  	asm("	subx.w	%d1,%d1");
  	asm("	mov.w	%d1,flag_68010");
  	asm("	mov.l	4(%a7),%d0");
  	asm("	beq.b	skip_1");
  	asm("	mov.l	%d0,%a0");

--- 465,473 -----
  	asm("	add.l	%d0,%d0");
  	asm("	subx.w	%d1,%d1");
  	asm("	mov.w	%d1,flag_68010");
+ 	asm("	add.l	%d0,%d0");
+ 	asm("	subx.w	%d1,%d1");
+ 	asm("	mov.w	%d1,flag_fpa");
  	asm("	mov.l	4(%a7),%d0");
  	asm("	beq.b	skip_1");
  	asm("	mov.l	%d0,%a0");
***************
*** 492,498
  	asm("	comm	float_soft, 4");
  	asm("	comm	flag_68881, 4");
  	asm("	comm	flag_68010, 4");
! 	
  #endif /* new hp assembler */
  #endif /* hp9000s300 */
  

--- 499,506 -----
  	asm("	comm	float_soft, 4");
  	asm("	comm	flag_68881, 4");
  	asm("	comm	flag_68010, 4");
! 	asm("	comm	flag_fpa, 4");
! 	asm("   comm    float_loc,  4");        /* Added for 6.5 */	
  #endif /* new hp assembler */
  #endif /* hp9000s300 */
  
--
					-- ange --

					ange@hplb.hpl.hp.com