History log of /haiku/src/system/kernel/lib/arch/x86_64/Jamfile
Revision Date Author Comments
# 7aa55747 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

kernel & addons: Build with the non-legacy GCC even on x86_gcc2h.

Only one code change: for some reason, GCC chokes on the cr3 functions
as macros (throwing errors about invalid registers.) The BSDs have them
as inline functions instead, so they are converted to that here.

Tested and working. There seems to be about a 10% decrease in CPU time
on some compilation benchmarks that I briefly tried.

Change-Id: I31666297394d7619f83fca6ff5f933ddd6f07420
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4515
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# c4eec9f1 01-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

Distinguish KERNEL_ARCH_DIR from KERNEL_ARCH.

On x86_64, the KERNEL_ARCH should really be "x86_64", but it was "x86"
as the architecture sources/headers directory is shared between 32 and 64 bit.

Should not be a functional change on any platform outside x86_64.


# 30e34185 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Jamfiles: Repace TARGET_PACKAGING_ARCH with TARGET_KERNEL_ARCH in a few places."

This reverts commit 66833143276573a3aa68600d3b38e56bc6e2aa7b.


# e8739543 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Jamfiles: Repace TARGET_PACKAGING_ARCH with TARGET_KERNEL_ARCH in a few places."

Previous revert inadvertently staged a different version. That's what I get for
rebasing 3 things at one time...

This reverts commit 66833143276573a3aa68600d3b38e56bc6e2aa7b.


# 4319e24c 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Jamfiles: Repace TARGET_PACKAGING_ARCH with TARGET_KERNEL_ARCH in a few places."

This reverts commit 66833143276573a3aa68600d3b38e56bc6e2aa7b.

Apparently, on closer inspection, this is not actually correct:
TARGET_KERNEL_ARCH is "x86" even on gcc2, and not an index into
the TARGET_CC_* etc. variable sets. That is pretty confusing and should
probably be fixed.


# 66833143 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

Jamfiles: Repace TARGET_PACKAGING_ARCH with TARGET_KERNEL_ARCH in a few places.

This is more technically correct.


# f2f91078 06-Sep-2014 Paweł Dziepak <pdziepak@quarnos.org>

kernel/x86_64: remove memset and memcpy from commpage

There is absolutely no reason for these functions to be in commpage,
they don't do anything that involves the kernel in any way.

Additionaly, this patch rewrites memset and memcpy to C++, current
implementation is quite simple (though it may perform surprisingly
well when dealing with large buffers on cpus with ermsb). Better
versions are coming soon.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# 6d70d75a 26-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

libroot/x86_64: rewrite system_time[_nsecs]() to C++

No functional change intended, just code deobfuscation.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# d3b1caa6 25-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

kernel, libroot: use C++11 atomics in atomic_*()

The less assembler in our sources the better. These functions wouldn't
be used very much since SupportDef.h inlines them, but the symbols should
be available.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# 5234e66d 21-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Optimized memcpy/memset for x86_64.


# f76bc433 13-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added some x86_64 system/kernel headers and kernel Jamfiles.

* Not all of these headers are correct yet, just adding what's necessary
to get things to compile for the time being.


# f2f91078bdfb4cc008c2f87af2bcc4aedec85cbc 06-Sep-2014 Paweł Dziepak <pdziepak@quarnos.org>

kernel/x86_64: remove memset and memcpy from commpage

There is absolutely no reason for these functions to be in commpage,
they don't do anything that involves the kernel in any way.

Additionaly, this patch rewrites memset and memcpy to C++, current
implementation is quite simple (though it may perform surprisingly
well when dealing with large buffers on cpus with ermsb). Better
versions are coming soon.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# 6d70d75a8e4f7c15eee4bc7ef666e62b48297631 26-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

libroot/x86_64: rewrite system_time[_nsecs]() to C++

No functional change intended, just code deobfuscation.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# d3b1caa62d83444c7c95a73cdc2094d2087fb818 25-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

kernel, libroot: use C++11 atomics in atomic_*()

The less assembler in our sources the better. These functions wouldn't
be used very much since SupportDef.h inlines them, but the symbols should
be available.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# b0944c78b074a8110bd98e060415d0e8f38a7f65 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# 5234e66d32184c0843e7c5020c23e28f88e50569 21-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Optimized memcpy/memset for x86_64.


# f76bc433e1582f4f5424cd5c95613cb247e15a98 13-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Added some x86_64 system/kernel headers and kernel Jamfiles.

* Not all of these headers are correct yet, just adding what's necessary
to get things to compile for the time being.