2005-09-26 16:04:21 +10:00
|
|
|
|
2021-10-13 15:36:22 +09:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-06 22:55:48 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-07 16:16:52 +11:00
|
|
|
|
2023-12-06 22:55:47 +11:00
|
|
|
|
2019-02-07 16:16:52 +11:00
|
|
|
|
2023-12-06 22:55:47 +11:00
|
|
|
|
2005-11-18 16:39:08 +11:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-11 16:03:14 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
2016-08-11 16:03:15 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-10-13 16:14:15 +10:00
|
|
|
|
2023-01-19 17:22:50 +09:00
|
|
|
|
2017-07-26 15:00:42 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-18 15:26:39 -05:00
|
|
|
|
2017-07-26 15:00:42 +10:00
|
|
|
|
|
|
|
|
|
2026-07-08 13:54:54 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-07-08 13:54:53 +05:30
|
|
|
|
2018-08-06 13:42:03 -03:00
|
|
|
|
2024-11-07 22:26:46 +11:00
|
|
|
|
2018-08-24 08:20:39 +09:00
|
|
|
|
2013-09-23 12:05:11 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-03-12 15:12:01 +11:00
|
|
|
|
2013-09-23 12:05:11 +10:00
|
|
|
|
2024-11-07 22:26:46 +11:00
|
|
|
|
2018-08-24 08:20:39 +09:00
|
|
|
|
2013-09-23 12:05:11 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-27 13:46:20 +11:00
|
|
|
|
2019-11-18 21:57:10 -07:00
|
|
|
|
2022-05-09 07:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-27 13:46:20 +11:00
|
|
|
|
2019-11-18 21:57:10 -07:00
|
|
|
|
2016-11-27 13:46:20 +11:00
|
|
|
|
2018-10-30 22:26:33 +09:00
|
|
|
|
2016-08-09 22:43:46 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-30 22:19:21 +10:00
|
|
|
|
|
|
|
|
|
2016-08-09 22:43:46 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2024-11-07 22:26:46 +11:00
|
|
|
|
2023-01-11 20:05:02 -07:00
|
|
|
|
2018-08-24 08:20:39 +09:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
2011-12-14 22:58:12 +00:00
|
|
|
|
2025-07-01 12:49:29 +02:00
|
|
|
|
2021-08-13 13:05:11 -07:00
|
|
|
|
2011-12-14 22:58:12 +00:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2018-08-06 13:42:03 -03:00
|
|
|
|
2023-04-08 12:17:52 +10:00
|
|
|
|
2012-11-26 17:41:08 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-08 12:17:52 +10:00
|
|
|
|
2012-11-26 17:41:08 +00:00
|
|
|
|
2015-05-26 08:53:27 +10:00
|
|
|
|
2022-05-09 07:36:06 +02:00
|
|
|
|
2015-05-26 08:53:29 +10:00
|
|
|
|
2014-03-10 21:06:12 +11:00
|
|
|
|
2023-02-15 11:41:16 -07:00
|
|
|
|
2016-11-27 13:46:20 +11:00
|
|
|
|
2015-05-26 08:53:29 +10:00
|
|
|
|
2014-03-10 21:06:12 +11:00
|
|
|
|
2019-11-18 21:57:10 -07:00
|
|
|
|
2024-01-10 19:42:37 +05:30
|
|
|
|
2012-12-12 14:43:12 +00:00
|
|
|
|
powerpc/64: Always build with 128-bit long double
The amdgpu driver builds some of its code with hard-float enabled,
whereas the rest of the kernel is built with soft-float.
When building with 64-bit long double, if soft-float and hard-float
objects are linked together, the build fails due to incompatible ABI
tags.
In the past there have been build errors in the amdgpu driver caused by
this, some of those were due to bad intermingling of soft & hard-float
code, but those issues have now all been fixed since commit 58ddbecb14c7
("drm/amd/display: move remaining FPU code to dml folder").
However it's still possible for soft & hard-float objects to end up
linked together, if the amdgpu driver is built-in to the kernel along
with the test_emulate_step.c code, which uses soft-float. That happens
in an allyesconfig build.
Currently those build errors are avoided because the amdgpu driver is
gated on 128-bit long double being enabled. But that's not a detail the
amdgpu driver should need to be aware of, and if another driver starts
using hard-float the same problem would occur.
All versions of the 64-bit ABI specify that long-double is 128-bits.
However some compilers, notably the kernel.org ones, are built to use
64-bit long double by default.
Apart from this issue of soft vs hard-float, the kernel doesn't care
what size long double is. In particular the kernel using 128-bit long
double doesn't impact userspace's ability to use 64-bit long double, as
musl does.
So always build the 64-bit kernel with 128-bit long double. That should
avoid any build errors due to the incompatible ABI tags. Excluding the
code that uses soft/hard-float, the vmlinux is identical with/without
the flag.
It does mean any code which is incorrectly intermingling soft &
hard-float code will build without error, so those bugs will need to be
caught by testing rather than at build time.
For more background see:
- commit d11219ad53dc ("amdgpu: disable powerpc support for the newer display engine")
- commit c653c591789b ("drm/amdgpu: Re-enable DCN for 64-bit powerpc")
- https://lore.kernel.org/r/dab9cbd8-2626-4b99-8098-31fe76397d2d@app.fastmail.com
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
Link: https://msgid.link/20230404102847.3303623-1-mpe@ellerman.id.au
2023-04-04 20:28:47 +10:00
|
|
|
|
2018-02-28 17:02:49 -08:00
|
|
|
|
2018-11-12 15:58:06 +10:30
|
|
|
|
2024-01-09 15:16:31 -07:00
|
|
|
|
2018-11-12 15:58:06 +10:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-09 15:16:31 -07:00
|
|
|
|
2018-11-12 15:58:06 +10:30
|
|
|
|
|
|
|
|
|
2018-02-28 17:02:49 -08:00
|
|
|
|
2012-04-17 18:45:28 +00:00
|
|
|
|
2024-03-29 00:18:23 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-14 15:08:53 +10:00
|
|
|
|
2023-06-19 15:17:34 +05:30
|
|
|
|
|
|
|
|
|
powerpc64/ftrace: Move ftrace sequence out of line
Function profile sequence on powerpc includes two instructions at the
beginning of each function:
mflr r0
bl ftrace_caller
The call to ftrace_caller() gets nop'ed out during kernel boot and is
patched in when ftrace is enabled.
Given the sequence, we cannot return from ftrace_caller with 'blr' as we
need to keep LR and r0 intact. This results in link stack (return
address predictor) imbalance when ftrace is enabled. To address that, we
would like to use a three instruction sequence:
mflr r0
bl ftrace_caller
mtlr r0
Further more, to support DYNAMIC_FTRACE_WITH_CALL_OPS, we need to
reserve two instruction slots before the function. This results in a
total of five instruction slots to be reserved for ftrace use on each
function that is traced.
Move the function profile sequence out-of-line to minimize its impact.
To do this, we reserve a single nop at function entry using
-fpatchable-function-entry=1 and add a pass on vmlinux.o to determine
the total number of functions that can be traced. This is then used to
generate a .S file reserving the appropriate amount of space for use as
ftrace stubs, which is built and linked into vmlinux.
On bootup, the stub space is split into separate stubs per function and
populated with the proper instruction sequence. A pointer to the
associated stub is maintained in dyn_arch_ftrace.
For modules, space for ftrace stubs is reserved from the generic module
stub space.
This is restricted to and enabled by default only on 64-bit powerpc,
though there are some changes to accommodate 32-bit powerpc. This is
done so that 32-bit powerpc could choose to opt into this based on
further tests and benchmarks.
As an example, after this patch, kernel functions will have a single nop
at function entry:
<kernel_clone>:
addis r2,r12,467
addi r2,r2,-16028
nop
mfocrf r11,8
...
When ftrace is enabled, the nop is converted to an unconditional branch
to the stub associated with that function:
<kernel_clone>:
addis r2,r12,467
addi r2,r2,-16028
b ftrace_ool_stub_text_end+0x11b28
mfocrf r11,8
...
The associated stub:
<ftrace_ool_stub_text_end+0x11b28>:
mflr r0
bl ftrace_caller
mtlr r0
b kernel_clone+0xc
...
This change showed an improvement of ~10% in null_syscall benchmark on a
Power 10 system with ftrace enabled.
Signed-off-by: Naveen N Rao <naveen@kernel.org>
Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20241030070850.1361304-13-hbathini@linux.ibm.com
2024-10-30 12:38:45 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
powerpc/ftrace: Add support for DYNAMIC_FTRACE_WITH_CALL_OPS
Implement support for DYNAMIC_FTRACE_WITH_CALL_OPS similar to the
arm64 implementation.
This works by patching-in a pointer to an associated ftrace_ops
structure before each traceable function. If multiple ftrace_ops are
associated with a call site, then a special ftrace_list_ops is used to
enable iterating over all the registered ftrace_ops. If no ftrace_ops
are associated with a call site, then a special ftrace_nop_ops structure
is used to render the ftrace call as a no-op. ftrace trampoline can then
read the associated ftrace_ops for a call site by loading from an offset
from the LR, and branch directly to the associated function.
The primary advantage with this approach is that we don't have to
iterate over all the registered ftrace_ops for call sites that have a
single ftrace_ops registered. This is the equivalent of implementing
support for dynamic ftrace trampolines, which set up a special ftrace
trampoline for each registered ftrace_ops and have individual call sites
branch into those directly.
A secondary advantage is that this gives us a way to add support for
direct ftrace callers without having to resort to using stubs. The
address of the direct call trampoline can be loaded from the ftrace_ops
structure.
To support this, we reserve a nop before each function on 32-bit
powerpc. For 64-bit powerpc, two nops are reserved before each
out-of-line stub. During ftrace activation, we update this location with
the associated ftrace_ops pointer. Then, on ftrace entry, we load from
this location and call into ftrace_ops->func().
For 64-bit powerpc, we ensure that the out-of-line stub area is
doubleword aligned so that ftrace_ops address can be updated atomically.
Signed-off-by: Naveen N Rao <naveen@kernel.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20241030070850.1361304-15-hbathini@linux.ibm.com
2024-10-30 12:38:47 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-19 15:17:34 +05:30
|
|
|
|
powerpc64/ftrace: Move ftrace sequence out of line
Function profile sequence on powerpc includes two instructions at the
beginning of each function:
mflr r0
bl ftrace_caller
The call to ftrace_caller() gets nop'ed out during kernel boot and is
patched in when ftrace is enabled.
Given the sequence, we cannot return from ftrace_caller with 'blr' as we
need to keep LR and r0 intact. This results in link stack (return
address predictor) imbalance when ftrace is enabled. To address that, we
would like to use a three instruction sequence:
mflr r0
bl ftrace_caller
mtlr r0
Further more, to support DYNAMIC_FTRACE_WITH_CALL_OPS, we need to
reserve two instruction slots before the function. This results in a
total of five instruction slots to be reserved for ftrace use on each
function that is traced.
Move the function profile sequence out-of-line to minimize its impact.
To do this, we reserve a single nop at function entry using
-fpatchable-function-entry=1 and add a pass on vmlinux.o to determine
the total number of functions that can be traced. This is then used to
generate a .S file reserving the appropriate amount of space for use as
ftrace stubs, which is built and linked into vmlinux.
On bootup, the stub space is split into separate stubs per function and
populated with the proper instruction sequence. A pointer to the
associated stub is maintained in dyn_arch_ftrace.
For modules, space for ftrace stubs is reserved from the generic module
stub space.
This is restricted to and enabled by default only on 64-bit powerpc,
though there are some changes to accommodate 32-bit powerpc. This is
done so that 32-bit powerpc could choose to opt into this based on
further tests and benchmarks.
As an example, after this patch, kernel functions will have a single nop
at function entry:
<kernel_clone>:
addis r2,r12,467
addi r2,r2,-16028
nop
mfocrf r11,8
...
When ftrace is enabled, the nop is converted to an unconditional branch
to the stub associated with that function:
<kernel_clone>:
addis r2,r12,467
addi r2,r2,-16028
b ftrace_ool_stub_text_end+0x11b28
mfocrf r11,8
...
The associated stub:
<ftrace_ool_stub_text_end+0x11b28>:
mflr r0
bl ftrace_caller
mtlr r0
b kernel_clone+0xc
...
This change showed an improvement of ~10% in null_syscall benchmark on a
Power 10 system with ftrace enabled.
Signed-off-by: Naveen N Rao <naveen@kernel.org>
Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20241030070850.1361304-13-hbathini@linux.ibm.com
2024-10-30 12:38:45 +05:30
|
|
|
|
powerpc/ftrace: Add support for DYNAMIC_FTRACE_WITH_CALL_OPS
Implement support for DYNAMIC_FTRACE_WITH_CALL_OPS similar to the
arm64 implementation.
This works by patching-in a pointer to an associated ftrace_ops
structure before each traceable function. If multiple ftrace_ops are
associated with a call site, then a special ftrace_list_ops is used to
enable iterating over all the registered ftrace_ops. If no ftrace_ops
are associated with a call site, then a special ftrace_nop_ops structure
is used to render the ftrace call as a no-op. ftrace trampoline can then
read the associated ftrace_ops for a call site by loading from an offset
from the LR, and branch directly to the associated function.
The primary advantage with this approach is that we don't have to
iterate over all the registered ftrace_ops for call sites that have a
single ftrace_ops registered. This is the equivalent of implementing
support for dynamic ftrace trampolines, which set up a special ftrace
trampoline for each registered ftrace_ops and have individual call sites
branch into those directly.
A secondary advantage is that this gives us a way to add support for
direct ftrace callers without having to resort to using stubs. The
address of the direct call trampoline can be loaded from the ftrace_ops
structure.
To support this, we reserve a nop before each function on 32-bit
powerpc. For 64-bit powerpc, two nops are reserved before each
out-of-line stub. During ftrace activation, we update this location with
the associated ftrace_ops pointer. Then, on ftrace entry, we load from
this location and call into ftrace_ops->func().
For 64-bit powerpc, we ensure that the out-of-line stub area is
doubleword aligned so that ftrace_ops address can be updated atomically.
Signed-off-by: Naveen N Rao <naveen@kernel.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20241030070850.1361304-15-hbathini@linux.ibm.com
2024-10-30 12:38:47 +05:30
|
|
|
|
2023-06-19 15:17:34 +05:30
|
|
|
|
2018-09-14 15:08:53 +10:00
|
|
|
|
2016-03-03 15:27:00 +11:00
|
|
|
|
2018-09-14 15:08:53 +10:00
|
|
|
|
|
|
|
|
|
2016-03-03 15:27:00 +11:00
|
|
|
|
2023-06-19 15:17:34 +05:30
|
|
|
|
2016-03-03 15:27:00 +11:00
|
|
|
|
powerpc/64: Set default CPU in Kconfig
Since commit 0069f3d14e7a ("powerpc/64e: Tie PPC_BOOK3E_64 to
PPC_E500MC"), the only possible BOOK3E/64 are E500, so no need of a
default CPU over the E5500.
When the user selects book3e, they must have an e500 compatible
compiler, and it won't work anymore with the default -mcpu=power64, see
commit d6b551b8f90c ("powerpc/64e: Fix build failure with GCC
12 (unrecognized opcode: `wrteei')").
For book3s/64, replace GENERIC_CPU by POWERPC64_CPU to match the PPC32
POWERPC_CPU, and set a default mpcu value in Kconfig directly.
When a user selects a particular CPU, they must ensure the compiler has
the requested capability. Therefore, remove hidden fallback, instead
offer user the possibility to say they want to use the toolchain
default.
Fixes: d6b551b8f90c ("powerpc/64e: Fix build failure with GCC 12 (unrecognized opcode: `wrteei')")
Reported-by: Pali Rohár <pali@kernel.org>
Tested-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/76c11197b058193dcb8e8b26adffba09cfbdab11.1674632329.git.christophe.leroy@csgroup.eu
2023-01-25 08:38:59 +01:00
|
|
|
|
|
|
|
|
|
2012-04-17 18:45:28 +00:00
|
|
|
|
2023-03-30 10:43:08 +11:00
|
|
|
|
2013-08-20 19:55:36 -05:00
|
|
|
|
2014-05-15 09:33:42 -07:00
|
|
|
|
|
|
|
|
|
2023-12-06 22:55:45 +11:00
|
|
|
|
2019-01-11 12:22:32 +09:00
|
|
|
|
2024-03-29 00:18:23 -07:00
|
|
|
|
2023-06-06 16:48:30 +10:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2016-08-11 16:03:14 +10:00
|
|
|
|
2016-07-12 10:54:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-05-09 07:36:08 +02:00
|
|
|
|
2016-07-12 10:54:51 +10:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2018-08-06 13:42:03 -03:00
|
|
|
|
2014-02-24 18:00:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-23 13:30:04 +10:00
|
|
|
|
2023-04-08 12:17:49 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-23 13:30:04 +10:00
|
|
|
|
2023-04-08 12:17:49 +10:00
|
|
|
|
2023-04-08 12:17:51 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-23 13:30:04 +10:00
|
|
|
|
2023-04-08 12:17:51 +10:00
|
|
|
|
2022-09-23 13:30:04 +10:00
|
|
|
|
|
|
|
|
|
2007-10-14 22:21:35 +02:00
|
|
|
|
2012-04-17 18:45:28 +00:00
|
|
|
|
2022-09-23 13:30:04 +10:00
|
|
|
|
2005-10-29 15:31:17 +10:00
|
|
|
|
2007-10-18 16:53:19 -05:00
|
|
|
|
2008-09-02 00:23:02 +10:00
|
|
|
|
2007-10-18 16:53:19 -05:00
|
|
|
|
2008-09-02 00:23:02 +10:00
|
|
|
|
2007-10-18 16:53:19 -05:00
|
|
|
|
2020-03-05 20:05:30 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-22 17:23:44 +11:00
|
|
|
|
|
|
|
|
|
2015-05-26 08:53:27 +10:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2016-08-09 22:43:46 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-12 16:55:58 -07:00
|
|
|
|
2008-02-07 05:18:34 +11:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
2010-08-15 22:26:56 +00:00
|
|
|
|
2011-12-01 19:35:08 +00:00
|
|
|
|
2005-09-30 16:16:52 +10:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
2005-09-30 16:16:52 +10:00
|
|
|
|
2023-12-06 22:55:45 +11:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
powerpc: Stop passing ARCH=ppc64 to boot Makefile
Back in 2005 when the ppc/ppc64 merge started, we used to build the
kernel code in arch/powerpc but use the boot code from arch/ppc or
arch/ppc64 depending on whether we were building for 32 or 64-bit.
Originally we called the boot Makefile passing ARCH=$(OLDARCH), where
OLDARCH was ppc or ppc64.
In commit 20f629549b30 ("powerpc: Make building the boot image work for
both 32-bit and 64-bit") (2005-10-11) we split the call for 32/64-bit
using an ifeq check, because the two Makefiles took different targets,
and explicitly passed ARCH=ppc64 for the 64-bit case and ARCH=ppc for
the 32-bit case.
Then in commit 94b212c29f68 ("powerpc: Move ppc64 boot wrapper code over
to arch/powerpc") (2005-11-16) we moved the boot code into arch/powerpc
and dropped the ppc case, but kept passing ARCH=ppc64 to
arch/powerpc/boot/Makefile.
Since then there have been several more boot targets added, all of which
have copied the ARCH=ppc64 setting, such that now we have four targets
using it.
Currently it seems that nothing actually uses the ARCH value, but that's
basically just luck, and in particular it prevents us from using the
generic cpp_lds_S rule. It's also clearly wrong, ARCH=ppc64 is dead,
buried and cremated.
Fix it by dropping the setting of ARCH completely, the correct value is
exported by the top level Makefile.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-11-21 21:14:33 +11:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
powerpc: Stop passing ARCH=ppc64 to boot Makefile
Back in 2005 when the ppc/ppc64 merge started, we used to build the
kernel code in arch/powerpc but use the boot code from arch/ppc or
arch/ppc64 depending on whether we were building for 32 or 64-bit.
Originally we called the boot Makefile passing ARCH=$(OLDARCH), where
OLDARCH was ppc or ppc64.
In commit 20f629549b30 ("powerpc: Make building the boot image work for
both 32-bit and 64-bit") (2005-10-11) we split the call for 32/64-bit
using an ifeq check, because the two Makefiles took different targets,
and explicitly passed ARCH=ppc64 for the 64-bit case and ARCH=ppc for
the 32-bit case.
Then in commit 94b212c29f68 ("powerpc: Move ppc64 boot wrapper code over
to arch/powerpc") (2005-11-16) we moved the boot code into arch/powerpc
and dropped the ppc case, but kept passing ARCH=ppc64 to
arch/powerpc/boot/Makefile.
Since then there have been several more boot targets added, all of which
have copied the ARCH=ppc64 setting, such that now we have four targets
using it.
Currently it seems that nothing actually uses the ARCH value, but that's
basically just luck, and in particular it prevents us from using the
generic cpp_lds_S rule. It's also clearly wrong, ARCH=ppc64 is dead,
buried and cremated.
Fix it by dropping the setting of ARCH completely, the correct value is
exported by the top level Makefile.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-11-21 21:14:33 +11:00
|
|
|
|
2007-12-03 13:56:58 +11:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
2020-02-19 11:04:34 +11:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
powerpc: Stop passing ARCH=ppc64 to boot Makefile
Back in 2005 when the ppc/ppc64 merge started, we used to build the
kernel code in arch/powerpc but use the boot code from arch/ppc or
arch/ppc64 depending on whether we were building for 32 or 64-bit.
Originally we called the boot Makefile passing ARCH=$(OLDARCH), where
OLDARCH was ppc or ppc64.
In commit 20f629549b30 ("powerpc: Make building the boot image work for
both 32-bit and 64-bit") (2005-10-11) we split the call for 32/64-bit
using an ifeq check, because the two Makefiles took different targets,
and explicitly passed ARCH=ppc64 for the 64-bit case and ARCH=ppc for
the 32-bit case.
Then in commit 94b212c29f68 ("powerpc: Move ppc64 boot wrapper code over
to arch/powerpc") (2005-11-16) we moved the boot code into arch/powerpc
and dropped the ppc case, but kept passing ARCH=ppc64 to
arch/powerpc/boot/Makefile.
Since then there have been several more boot targets added, all of which
have copied the ARCH=ppc64 setting, such that now we have four targets
using it.
Currently it seems that nothing actually uses the ARCH value, but that's
basically just luck, and in particular it prevents us from using the
generic cpp_lds_S rule. It's also clearly wrong, ARCH=ppc64 is dead,
buried and cremated.
Fix it by dropping the setting of ARCH completely, the correct value is
exported by the top level Makefile.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-11-21 21:14:33 +11:00
|
|
|
|
2010-08-02 20:47:48 +00:00
|
|
|
|
2023-01-24 12:02:12 +01:00
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
|
|
|
|
|
2015-09-23 15:40:35 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2018-11-15 12:19:50 +05:30
|
|
|
|
2023-04-14 23:24:13 +10:00
|
|
|
|
2018-11-15 12:19:50 +05:30
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2018-11-15 12:19:50 +05:30
|
|
|
|
2023-04-14 23:24:13 +10:00
|
|
|
|
2018-11-15 12:19:50 +05:30
|
|
|
|
2023-04-14 23:24:14 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-14 23:24:15 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2017-07-24 22:50:45 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
2019-05-28 18:16:14 +10:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
2019-05-28 18:16:14 +10:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
2019-05-28 18:16:14 +10:00
|
|
|
|
2016-09-22 18:04:12 +03:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
2019-05-28 18:16:14 +10:00
|
|
|
|
2016-09-22 18:04:12 +03:00
|
|
|
|
2015-07-29 18:14:04 -05:00
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2016-02-22 10:26:14 +01:00
|
|
|
|
2019-05-28 18:16:14 +10:00
|
|
|
|
2016-02-22 10:26:14 +01:00
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2016-02-22 10:26:14 +01:00
|
|
|
|
2019-05-28 18:16:14 +10:00
|
|
|
|
2016-02-22 10:26:14 +01:00
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2018-07-10 00:24:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-29 22:41:08 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-10 00:24:25 +10:00
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2019-02-07 16:16:51 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2018-07-10 00:24:26 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2020-11-25 14:15:51 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2018-07-10 00:24:26 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2021-04-28 23:27:00 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
2021-04-28 23:27:00 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2023-03-29 18:23:33 +11:00
|
|
|
|
2023-12-06 22:55:45 +11:00
|
|
|
|
2023-03-29 18:23:33 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-09 16:38:06 +11:00
|
|
|
|
2023-12-06 22:55:45 +11:00
|
|
|
|
2023-03-29 18:23:33 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-06 22:55:45 +11:00
|
|
|
|
2023-03-29 18:23:33 +11:00
|
|
|
|
2023-03-29 18:23:34 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
2020-02-19 11:04:34 +11:00
|
|
|
|
2008-02-16 12:36:10 +01:00
|
|
|
|
2022-05-03 11:47:16 +09:00
|
|
|
|
2007-04-10 21:05:31 +10:00
|
|
|
|
2020-09-27 09:16:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-01-21 16:30:27 +00:00
|
|
|
|
2020-09-27 09:16:33 +00:00
|
|
|
|
2022-01-21 16:30:27 +00:00
|
|
|
|
2020-09-27 09:16:33 +00:00
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
|
|
|
|
|
2018-12-17 16:10:36 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-27 07:05:53 +00:00
|
|
|
|
|
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2020-02-19 11:04:34 +11:00
|
|
|
|
2018-09-27 07:05:53 +00:00
|
|
|
|
2018-09-27 07:05:55 +00:00
|
|
|
|
2024-10-09 12:26:09 -07:00
|
|
|
|
2024-11-30 13:41:50 -08:00
|
|
|
|
|
|
|
|
|
2018-09-27 07:05:55 +00:00
|
|
|
|
2024-10-09 12:26:09 -07:00
|
|
|
|
2024-11-30 13:41:50 -08:00
|
|
|
|
|
|
|
|
|
2018-09-27 07:05:53 +00:00
|
|
|
|
2018-09-27 07:05:55 +00:00
|
|
|
|
2018-09-27 07:05:53 +00:00
|
|
|
|
2020-02-19 11:04:34 +11:00
|
|
|
|
2005-09-26 16:04:21 +10:00
|
|
|
|
2023-05-30 11:44:36 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|