* 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
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
* 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
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
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
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
<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
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
* 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
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
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
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
* 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
* 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
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
* 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
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
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
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
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
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
* 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