Patch by Alexander von Gluck (kallisti5) to get the PPC build going again

(mostly at least). Also disables -Werror for the binutils, but those should
be fixed eventually.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29804 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-03-30 15:00:10 +00:00
parent a9cd24f58e
commit 328029e178
7 changed files with 6 additions and 30 deletions
+1 -1
View File
@@ -89,7 +89,7 @@ mkdir -p $installDir/lib/gcc/$haikuMachine/$gccVersion
cd $binutilsObjDir cd $binutilsObjDir
CFLAGS="-O2" CXXFLAGS="-O2" $binutilsSourceDir/configure \ CFLAGS="-O2" CXXFLAGS="-O2" $binutilsSourceDir/configure \
--prefix=$installDir --target=$haikuMachine --disable-nls \ --prefix=$installDir --target=$haikuMachine --disable-nls \
--disable-shared --disable-multilib || exit 1 --disable-shared --disable-multilib --disable-werror || exit 1
$MAKE || exit 1 $MAKE || exit 1
$MAKE install || exit 1 $MAKE install || exit 1
@@ -20,7 +20,7 @@ void ppc_pop_iframe(struct iframe_stack *stack);
struct iframe *ppc_get_user_iframe(void); struct iframe *ppc_get_user_iframe(void);
extern inline struct thread * static inline struct thread *
arch_thread_get_current_thread(void) arch_thread_get_current_thread(void)
{ {
struct thread *t; struct thread *t;
@@ -29,7 +29,7 @@ arch_thread_get_current_thread(void)
} }
extern inline void static inline void
arch_thread_set_current_thread(struct thread *t) arch_thread_set_current_thread(struct thread *t)
{ {
asm volatile("mtsprg2 %0" : : "r"(t)); asm volatile("mtsprg2 %0" : : "r"(t));
-8
View File
@@ -29,14 +29,6 @@ status_t arch_thread_enter_userspace(struct thread *t, addr_t entry,
void arch_thread_switch_kstack_and_call(struct thread *t, addr_t new_kstack, void arch_thread_switch_kstack_and_call(struct thread *t, addr_t new_kstack,
void (*func)(void *), void *arg); void (*func)(void *), void *arg);
// ToDo: doing this this way is an ugly hack - please fix me!
// (those functions are "static inline" for x86 - since
// "extern inline" doesn't work for "gcc -g"...)
#ifndef ARCH_x86
struct thread *arch_thread_get_current_thread(void);
void arch_thread_set_current_thread(struct thread *t);
#endif
bool arch_on_signal_stack(struct thread *thread); bool arch_on_signal_stack(struct thread *thread);
status_t arch_setup_signal_frame(struct thread *t, struct sigaction *sa, status_t arch_setup_signal_frame(struct thread *t, struct sigaction *sa,
int signal, int signalMask); int signal, int signalMask);
-11
View File
@@ -471,17 +471,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <errno.h> #include <errno.h>
#if __POWERPC__ /* atoll is missing from the PowerPC standard library. */
static long long atoll (const char *str) {
long long result = 0;
if (!str || !str[0])
return 0;
if (sscanf (str, "%Ld", &result) != 1)
result = 0;
return result;
}
#endif
/* Standard C++ library. */ /* Standard C++ library. */
#include <iostream> #include <iostream>
+2 -2
View File
@@ -85,7 +85,7 @@ arch_cpu_sync_icache(void *address, size_t len)
void void
arch_cpu_memory_read_barrier(void) arch_cpu_memory_read_barrier(void)
{ {
#warning PPC: is it model-dependant ? // WARNING PPC: is it model-dependant ?
asm volatile ("lwsync"); asm volatile ("lwsync");
} }
@@ -93,7 +93,7 @@ arch_cpu_memory_read_barrier(void)
void void
arch_cpu_memory_write_barrier(void) arch_cpu_memory_write_barrier(void)
{ {
#warning PPC: is it model-dependant ? // WARNING PPC: is it model-dependant ?
asm volatile ("isync"); asm volatile ("isync");
asm volatile ("eieio"); asm volatile ("eieio");
} }
+1 -1
View File
@@ -126,7 +126,7 @@ ppc_exception_entry(int vector, struct iframe *iframe)
if (kernelDebugger) { if (kernelDebugger) {
// if this thread has a fault handler, we're allowed to be here // if this thread has a fault handler, we're allowed to be here
struct thread *thread = thread_get_current_thread(); struct thread *thread = thread_get_current_thread();
if (thread && thread->fault_handler != NULL) { if (thread && thread->fault_handler != 0) {
iframe->srr0 = thread->fault_handler; iframe->srr0 = thread->fault_handler;
break; break;
} }
-5
View File
@@ -235,11 +235,6 @@ arch_restore_signal_frame(void)
} }
void
arch_check_syscall_restart(struct thread *thread)
{
}
/** Saves everything needed to restore the frame in the child fork in the /** Saves everything needed to restore the frame in the child fork in the
* arch_fork_arg structure to be passed to arch_restore_fork_frame(). * arch_fork_arg structure to be passed to arch_restore_fork_frame().