597 Commits

Author SHA1 Message Date
Stefano Ceccherini
64f6abaa91 Imported some wide char functions from freebsd, adapted to the build, tried to integrate them with the glibc we are using. The mbtest supplied in ticket #2822 seems to work, without regressions. Please shout if there are issues.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-20 16:09:58 +00:00
Axel Dörfler
18f27bf19f * Added POSIX function strndup(), closing ticket #3309.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-18 20:27:12 +00:00
Salvatore Benedetto
b3e849c2ce * Adding libgen.h as a public header
* Implementing dirname and basename

I removed dirname from glibc/misc and reimplemented in order
to (hopefully) keep thing tidy.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-11 23:38:27 +00:00
Axel Dörfler
99fe8fb0f6 * "" is not really a good error description.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-11 14:19:20 +00:00
Axel Dörfler
d5ec380523 * Added siginterrupt() function, this closes ticket #3263.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28854 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-07 19:40:53 +00:00
Salvatore Benedetto
e4263eb78e * Uncommenting POSIX mkdtemp function. Tested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-01 21:01:51 +00:00
Axel Dörfler
bf6bf2e36b * get_context() didn't quite do what it was supposed to be doing. Especially,
it was not guaranteed that this function returned a valid context even with
  low memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-12-27 22:12:08 +00:00
Oliver Tappe
b898cc3709 solved build dependency puzzle in regex.c:
* removed superfluous #include <config.h> which was protected by an #ifdef
  that evaluated to false - so the file never got included, but jam tried
  to locate it and usually failed, unless there happens to be a config.h
  in the current working directory. 
  This fixes a spurious dependency from regex.c to the config.h in 
  src/libs/iconv.h if you invoked jam from there.
* fixed two warnings by always including stdlib.h

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-13 16:23:04 +00:00
Ingo Weinhold
aa22a3cfda dlclose() also set the static error variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28579 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-09 18:19:46 +00:00
Ingo Weinhold
0c85bd054e * Reworked undefined symbol resolution in the runtime loader. Got rid of
the per-root-image breadth-first sorted image array. Instead we have a
  per-image hook function to resolve the symbols. The default function
  uses the sLoadedImages list directly, which is breadth-first sorted
  anyway. There's also a BeOS function for old-style symbol resolution
  and one for add-ons, which lacks a proper implementation yet (just
  uses old-style ATM).
* Made the dl*() functions POSIX compliant:
  - dlopen() does no longer use load_add_on(), but loads the object as a
    library. It also properly supports a NULL name, now -- the previous
    "_APP_" work-around did only work, if this soname was set on the
    program (unlikely for programs using this API).
  - Implemented RTLD_{GLOBAL,LOCAL}.
  - dlsym() looks up symbols properly now, i.e. not just in the given
    image, but breadth-first for an actual image or in load order for
    the global scope. It also supports the not-quite POSIX RTLD_DEFAULT
    and RTLD_NEXT extensions. Our RTLD_NEXT finds more symbols than in
    Linux (also in later dlopen()ed libraries), but that should be fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-08 22:40:56 +00:00
Ingo Weinhold
e10b4cace5 Added __arch_get_caller(). Correctly implemented for x86 only.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-08 22:09:28 +00:00
François Revol
da7dce9b35 This seems to fix building libroot on ppc... the *l versions aren't used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-06 23:24:41 +00:00
Axel Dörfler
5074333ded * Updating glob() actually broke it, since Haiku does have broken mbrtowc(),
and wcrtomb() functions. I worked around the issue, and added a build
  warning so that we don't forget to change it back once we have working
  versions of those.
* This lets apps like "ftp", and "sftp" work again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-06 11:26:01 +00:00
Ingo Weinhold
3cbd4a09f7 system() is supposed to return a waitpid() style exit status value.
wait_for_thread() doesn't provide that; use waitpid() instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-03 16:35:09 +00:00
Ingo Weinhold
19d40f9eb7 Moved the rld_export structure from <user_runtime.h> to
<runtime_loader.h>, since it isn't a kernel <-> userland interface.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-02 03:43:01 +00:00
Ingo Weinhold
2ef4a8b524 Moved the variable cv_factor from the text to the bss section.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-02 02:58:38 +00:00
Ingo Weinhold
8d41d0ee72 Spotted by "daste": When unlocking the mutex owner must be set to -1
also for error check mutexes, otherwise the next pthread_mutex_lock()
will fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 14:30:09 +00:00
Ingo Weinhold
3a39905b59 Implemented __freading(), __fpurge(), and fpurge().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 13:02:40 +00:00
Axel Dörfler
6e036f0479 * Updated glob.h and its implementation to FreeBSD current (1.10, 1.27),
adapted them to work on Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 14:13:30 +00:00
Ingo Weinhold
f20ccdc461 Fixed some incorrect behavior pointed out in #2990:
* The pthread_mutex_*lock() family should return EDEADLK when re-locking
  an error-checked mutex.
* pthread_mutex_trylock() is supposed to return EBUSY, not
  B_WOULD_BLOCK.
* pthread_mutex_unlock() should return EPERM when the caller is not the
  owner. It used to print a message and try to unlock anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 12:04:51 +00:00
Axel Dörfler
e2040be893 * Applied patch by Romain Picard: added support for the GNU extension dladdr(),
thanks!
* This closes ticket #2818.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 09:53:48 +00:00
Ingo Weinhold
bc3955fea5 Preparations for removing __BEOS__ from the compiler defines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 21:46:26 +00:00
François Revol
d4dcbf95f6 - Fix build.
- make system_time() return something sensible until platform code works.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 21:23:55 +00:00
Stephan Aßmus
f73283cf6a When opening mails with slightly larger attachements in Beam, I noticed that
it was quite sluggish. When opening larger mails, like a 1.14 MB mail for
example, it could take almost half a minute until it was displayed. It turned
out that the offending thread was in strstr().
This is an implementation taken from Wikipedia (declared as public domain
there), which makes the mails open instantly. This usecase may have represented
a worst-case scenario for the previous implementation. It may be beneficial to
take a look at more of these string functions, but I am happy for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 15:31:58 +00:00
Oliver Tappe
e1e083d584 * added skipping of '0'-modified supported by glibc (formats are padded
with zeros anyway)
this fixes creation of unique file names in Beam under haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 13:51:45 +00:00
Michael Lotz
39e9e0e43b Fix typo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 08:08:31 +00:00
Michael Lotz
c2b295654c Initialize the parameters to NULL so that a later reload doesn't try to free
uninitialized memory. Fixes a crash on boot with a preloaded settings file
present that wasn't used before the boot device was available (like the vm
settings file).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 08:06:30 +00:00
Axel Dörfler
25174582be Fixed two problems recently introduced by korli and found by aldeck:
* When invalidating unused settings, we should remove the handle from the list
  before freeing it, or else the settings list will be corrupted.
* We should protect the safemode settings against being removed, or else they
  won't be availabe anymore after we mounted the boot device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-13 13:38:01 +00:00
François Revol
9f5e12b6b3 - use asm_def.h and FUNCTION_END
- remove some dead ppc code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-13 09:25:13 +00:00
François Revol
5bb2204e46 Enable and fix the asm memcpy(). It's far from optimized, but works now and fixes the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-12 18:07:47 +00:00
Ingo Weinhold
c73aeac11e We need to let the runtime loader call shared object termination hooks
from exit().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-12 12:26:27 +00:00
Jérôme Duval
3c4a3ce31c * correctly init ref_count on driver settings handles
* unload settings when ref_count is zero and boot device is available


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-11 14:58:12 +00:00
Axel Dörfler
2716cfd3d7 * Threw away the broken stat() vs. _stat() mechanism to allow for more fields
in struct stat.
* Instead, I followed Marcus' great idea and added a compatibility check in
  the runtime loader: now, R5 binaries (also shared libraries) are detected,
  and they get special versions for stat(), fstat(), and lstat() that return
  the smaller stat struct.
* However, I've disabled (in src/system/libroot/posix/sys/stat.c) using the
  larger stat field for now, as this breaks some of our optional packages.
  So until we rebuild them all, this shouldn't be enabled.
* This should now also be used for BeOS compatibility in libnetwork.so.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-10 22:13:05 +00:00
Ingo Weinhold
b18c9b97ae * Implemented x86 assembly version of memset().
* memset() is now available through the commpage.
* CPU modules can provide a model-optimized memset().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-10 18:43:46 +00:00
Ingo Weinhold
379ad6d037 * Moved the arch specific stuff in src/system/kernel/lib into arch/...
subdirectories. Also moved the x86 kernel arch_string.S there.
* Moved memcpy.c from src/system/libroot/posix/string into the
  arch/generic subdirectory.
* Dealt with the consequences of moving things around. Affected are also
  the boot loader and runtime loader builds.

Adjust the m68k and ppc parts, too, but only the x86 build is tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-09 23:47:01 +00:00
Stefano Ceccherini
026c75e91c add ctype-extn.c to the build. It contains the function versions of the is*** defines. Without this, bash 3 refuses to compile on haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-09 14:58:45 +00:00
Ingo Weinhold
7867cf37df Increase the heap size in 64 KB steps. Was 4 KB before, which was a bit
slow for short-running, heap-intensive programs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-08 14:05:47 +00:00
Ingo Weinhold
f711e9dc45 Use esi instead of ebp. The latter usually is the stack frame pointer --
using it for something else screws stack traces while being in such a
function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-29 00:37:35 +00:00
Ingo Weinhold
8cc146385f Use the new <asm_defs.h> header in x86 assembly files. Particularly
added FUNCTION_END() calls for a good deal of functions. The respective
ELF symbols do now have a correct size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-23 22:50:30 +00:00
Axel Dörfler
ca7cb625b9 * Implemented a (private for now) get_system_info_etc() call, that can retrieve
various system information.
* Implemented retrieving some VM stats via this call.
* The VM now maintains a page fault counter, and sets system_info::page_faults
  accordingly.
* Added a (pretty simple) "vmstat" command line app.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-17 16:27:17 +00:00
Jérôme Duval
645fa87a21 added lsearch and lfind
remove unknown infnanf and strtcopy functions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 22:27:55 +00:00
Jérôme Duval
eabd7df4a2 added insque and remque
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 22:23:21 +00:00
Salvatore Benedetto
9c3feb120b * forgot to commit Jamfiles
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 15:06:47 +00:00
Salvatore Benedetto
f22e1421a4 * Adding sys/msg.h header and relative syscalls
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 14:52:35 +00:00
Axel Dörfler
43209917de * BDirectory::CreateDirectory() and CreateSymlink() now both use __gUmask to
correct the permission mask. This fixes bug #2670.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 12:25:05 +00:00
Ingo Weinhold
b27c9bd52f * env.c -> env.cpp
* Squashed TODO: Use a benaphore for locking to improve performance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-07 15:28:39 +00:00
Jérôme Duval
ab2b993da9 added nexttoward()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-06 15:00:33 +00:00
Jérôme Duval
bb97148298 added more posix functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-06 14:31:28 +00:00
Jérôme Duval
2eb280d3a8 added a few more math functions, rearranged some functions in math.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-05 23:21:33 +00:00
Jérôme Duval
aaec7603ab added matherr, lroundl and roundl
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-05 20:58:03 +00:00