Ticket #2696 (new bug)

Opened 19 months ago

Last modified 9 months ago

unimplemented functions

Reported by: kaliber Owned by: axeld
Priority: normal Milestone: R1
Component: System/libroot.so Version: R1/pre-alpha1
Keywords: Cc: haiku@…, planche2k@…
Blocked By: #2564 Platform: All
Blocking:

Description

I wrote a buggy script which detects declared but not implemented functions (symbols) in Haiku. It found (not a full list yet):

stdio.h:
	_ftell

setjmp.h:
	_setjmp

nl_types.h:
	catclose
	catgets
	catopen

math.h:
	__fpclassifyl
	__signbitf
	gamma_r
	gammaf_r

iconv.h:
	functions implemented in libtextencoding?

search.h:
	hcreate
	hdestroy
	hsearch
	remque

stdlib.h:
	random_r
	setstate_r
	srandom_r

wctype.h:
	towctrans

wchar.h:
	fgetws
	getwchar
	wcsftime

libio.h:
	_IO_feof_unlocked
	_IO_ferror_unlocked
	_IO_getc_unlocked ?
	_IO_peekc_unlocked ?
	_IO_putc_unlocked ?

Attachments

scripts.zip Download (0.9 KB) - added by kaliber 10 months ago.
scripts to detect unimplemented functions

Change History

  Changed 19 months ago by andreasf

  • cc andreas.faerber@… added
  • component changed from - General to System/libroot.so
  • blockedby 2564 added

  Changed 19 months ago by andreasf

#2564 was about __signbitf

  Changed 19 months ago by scottmc

  • cc haiku@… added

  Changed 18 months ago by korli

added remque in r27422

follow-up: ↓ 12   Changed 18 months ago by scottmc

This one is blocking  HaikuPorts Ticket #70, which affects building the CVS version of CVS. So until the libio.h functions are implemented we won't have a Haiku native CVS. Good news is that the BeOS CVS has been working ok as far as I can tell.

  Changed 18 months ago by umccullough

Is it true that no native version can be built?

It seems the CVS here:

 http://haiku-files.org/files/optional-packages/

May be a native version already. At least, it seems to be built for /boot/common already.

IIRC, this was provided by stippi, but I can't confirm that.

  Changed 18 months ago by scottmc

In that zip file the .OptionalPackageDescription said it was the BeOS version... It's possible to build 1.12.13 with a bit of hacking along the way, which is what I'll probably do. But no use in sending in patches for that as the cvs version of cvs has dropped a lot of files some of which need to be patched on 1.12.13. Andreas got it mosted working:  http://ports.haiku-files.org/wiki/dev-util/cvs I'll take another look at in the next few days here. But the cvs version of cvs is stuck util the functions actually exist.

  Changed 18 months ago by axeld

libio.h is not a POSIX header, and the functionality doesn't seem to be standardized anywhere. If CVS is using it now for whatever reason (poor maintainer IMO), I would think we could easily live with an older version of it.

  Changed 17 months ago by scottmc

@Kaliber
Can you post your buggy script here? Might be useful in rechecking these from time to time.

  Changed 14 months ago by harsha

so far found the following functions already in haiku math.h:

fpclassifyl -> system/libroot/posix/glibc/arch/x86/s_fpclassifyl.c

signbitf -> system/libroot/posix/glibc/arch/generic/s_signbitf.c

gamma_r -> system/libroot/posix/glibc/arch/generic/e_gamma_r.c

gammaf_r -> /system/libroot/posix/glibc/arch/generic/e_lgamma_r.c

wctype.h

towctrans -> system/libroot/posix/glibc/wctype/towctrans.c

I added the following functions nl_types.h:

catclose

catgets

catopen

when i am building they are not linking . can anybody tell me what i am missing. I added the files under glibc and doing a normal build. and this is what my target vmware image contains

$>strings Haiku-IDE_0-1.vmdk | grep "catclose"

/* SYSCALLS.c:385:NC */ extern int catclose (nl_catd);

Changed 10 months ago by kaliber

scripts to detect unimplemented functions

  Changed 10 months ago by kaliber

Here is updated report (r30960). It covers everything except compatibility headers (bsd):

stdio.h:
	_ftell (_IO_ftell)

math.h:
	gammaf_r (__ieee754_gammaf_r)
	gamma_r (__ieee754_gamma_r)
	lgammal (__ieee754_lgammal_r)

search.h:
	hcreate
	hdestroy
	hsearch

iconv.h:
	iconv (libiconv)
	iconv_close (libiconv_close) 
	iconv_open (libiconv_open)

dirent.h:
	seekdir
	telldir

setjmp.h:
	_setjmp (setjmp)

wchar.h:
	wcsftime

Please close the ticket #2702

in reply to: ↑ 5   Changed 10 months ago by scottmc

Replying to scottmc:

This one is blocking  HaikuPorts Ticket #70, which affects building the CVS version of CVS. So until the libio.h functions are implemented we won't have a Haiku native CVS. Good news is that the BeOS CVS has been working ok as far as I can tell.

HaikuPorts ticket 70 has been closed as fixed.

  Changed 9 months ago by andreasf

  • cc andreas.faerber@… removed

  Changed 9 months ago by andreasf

  • cc planche2k@… added
Note: See TracTickets for help on using tickets.