Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:rjbell4
glibc
glibc-2.8-ppc-dcb.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File glibc-2.8-ppc-dcb.diff of Package glibc
2008-01-24 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/dl-machine.h (PPC_DCBT, PPC_DCBF): Define additonal Data Cache Block instruction macros. (elf_machine_fixup_plt): Add dcbt for opd and plt entries. Replace dcbst with dcbf and sync with sync/isync. diff -urN glibc-2.4-sles10sp1/sysdeps/powerpc/powerpc64/dl-machine.h glibc-2.4-sles10sp1-patched/sysdeps/powerpc/powerpc64/dl-machine.h --- sysdeps/powerpc/powerpc64/dl-machine.h 2008-01-04 10:54:39.000000000 -0600 +++ sysdeps/powerpc/powerpc64/dl-machine.h 2008-02-05 09:02:11.000000000 -0600 @@ -1,7 +1,6 @@ /* Machine-dependent ELF dynamic relocation inline functions. PowerPC64 version. - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright Copyright 1995-2005, 2006, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -283,6 +282,8 @@ #define GLINK_INITIAL_ENTRY_WORDS 8 #define PPC_DCBST(where) asm volatile ("dcbst 0,%0" : : "r"(where) : "memory") +#define PPC_DCBT(where) asm volatile ("dcbt 0,%0" : : "r"(where) : "memory") +#define PPC_DCBF(where) asm volatile ("dcbf 0,%0" : : "r"(where) : "memory") #define PPC_SYNC asm volatile ("sync" : : : "memory") #define PPC_ISYNC asm volatile ("sync; isync" : : : "memory") #define PPC_ICBI(where) asm volatile ("icbi 0,%0" : : "r"(where) : "memory") @@ -404,6 +405,11 @@ Elf64_FuncDesc *rel = (Elf64_FuncDesc *) finaladdr; Elf64_Addr offset = 0; + PPC_DCBT (&plt->fd_aux); + PPC_DCBT (&plt->fd_func); + PPC_DCBT (&rel->fd_aux); + PPC_DCBT (&rel->fd_func); + /* If sym_map is NULL, it's a weak undefined sym; Leave the plt zero. */ if (sym_map == NULL) return 0; @@ -426,13 +432,12 @@ plt->fd_aux = rel->fd_aux + offset; plt->fd_toc = rel->fd_toc + offset; - PPC_DCBST (&plt->fd_aux); - PPC_DCBST (&plt->fd_toc); - PPC_SYNC; + PPC_DCBF (&plt->fd_toc); + PPC_ISYNC; plt->fd_func = rel->fd_func + offset; PPC_DCBST (&plt->fd_func); - PPC_SYNC; + PPC_ISYNC; return finaladdr; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor