Subject: something wrong with ELF, lint, libkvm, xemacs...
To: None <port-alpha@netbsd.org>
From: Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
List: port-alpha
Date: 12/09/1999 19:02:07
Hi, I'm a new netbsd/alpha user.
Sorry for this long, hard to read mail.
Please help me if you have time.
If these question is FAQ, wrong ML, I'm sorry.

I have installed with 1.4.1 floppy and
have compiled all from cvs updated current source.
Current source seemed not so easy to compile for me.
I changed source a little. I want to know that
is it due to my mis-setting of environment
(e.g. /usr/include) or not.

1, Interface to execute ELF 

	I added some #define like..

---------------------
/* elf64 */
#elif defined(ELFSIZE) && (ELFSIZE == 64)
#define ELFMAG Elf64_e_ident
#define SELFMAG Elf64_e_siz
#define ELFCLASS 2
#define ELF64_ST_BIND(x)  ELF_SYM_BIND(x)
#define ELF64_ST_TYPE(x)  ELF_SYM_TYPE(x)
#define Elf_Sword Elf64_Shalf
#endif

#define ELF_ST_INFO(x,y)  (((Elf_Byte)ELF_SYM_BIND(x)) | (Elf_Byte)ELF_SYM_TYPE(y))
#define ELF_ST_BIND(x)    (ELF_SYM_BIND(x))
#define ELF_ST_TYPE(x)    (ELF_SYM_TYPE(x))
---------------------

	I know little what this means.
	What is the right way to compile clean?

2, lint(1) warns "may lose accuracy" while make

	for example, compiling basesrc/lib/libkvm,
	lint warns like this...

---------------------
lint -chapbxzF -DLIBC_SCCS -i kvm.c
kvm.c(344): warning: conversion to 'unsigned long' due to prototype, arg #3
kvm.c(415): warning: conversion to 'unsigned long' due to prototype, arg #2
kvm.c(418): warning: conversion to 'unsigned long' due to prototype, arg #4
kvm.c(497): warning: conversion to 'unsigned long' due to prototype, arg #4
kvm.c(497): warning: conversion to 'long' due to prototype, arg #5
kvm.c(526): warning: conversion from 'unsigned long' may lose accuracy
kvm.c(581): warning: conversion to 'unsigned long' due to prototype, arg #3
kvm.c(586): warning: conversion from 'unsigned long' may lose accuracy
kvm.c(594): warning: conversion from 'unsigned long' may lose accuracy
kvm.c(595): warning: conversion to 'unsigned long' due to prototype, arg #3
kvm.c(600): warning: conversion from 'unsigned long' may lose accuracy
kvm.c(604): warning: conversion to 'unsigned long' due to prototype, arg #3
kvm.c(609): warning: conversion from 'unsigned long' may lose accuracy
---------------------

	Is this serious? If not, I never mind.

3, ps didn't work

	I found kvm_getprocs() failed in ps...

---------------------
xroads# ps
ps: proc size mismatch (29464 total, 1008 chunks).
Warning:  /proc does not provide valid data for all fields.
  PID TT  STAT      TIME COMMAND
ps: procfs_getargv, 99, 
  495 p2- ?<     0:00.14 (csh)
ps: procfs_getargv, 99, 
  499 p2- ?<     0:01.43 (tcsh)
	.
	.
---------------------

	when I commented out kvm_proc.c:line 441...
	(changed not to return if returned size seems strange)

---------------------
                if (size % sizeof(struct kinfo_proc) != 0) {
                        _kvm_err(kd, kd->program,
                                "proc size mismatch (%d total, %d chunks)",
                                size, sizeof(struct kinfo_proc));
/*                      return (0); */
                }
                nprocs = size / sizeof(struct kinfo_proc);
---------------------

	ps works as shown bellow

---------------------
xroads# ps
  PID TT  STAT      TIME COMMAND
 6054 p0  I      0:00.13 -csh 
 6057 p0  I+     0:00.24 -csh (tcsh)
	.
	.
---------------------

	Is there anybody who experienced this?
	I didn't follow kernel codes.

4, xemacs (from anoncvs) can't be compiled.

	xemacs compile ends with bellow error.

---------------------
Purespace usage: 1047880 of 1047904 (100%).
unexec - /usr/local/src/xemacs/src/temacs linked with obsolete version of ld -- we quit! 1 0x203cd6e0
---------------------

	"1" is ld->d_version, which must be greater than
	LD_VERSION_BSD(i.e. 8). "0x203cd6e0" is address of ld,
	which is that of _DYNAMIC.

	Is this problem of my environment (changes made above 1)?
	Is this XEmacs problem or bug of NetBSD/Alpha?

waiting for your reply, thank you.
		yasu@sfc.wide.ad.jp