Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xserver support for bebox and prep



Hi! all,


Again.  ;-)

I try to support xserver on bebox and prep.  I edit some Makefile-s and
other files.  Moreover it builded xserver.tgz by './build.sh -x release'.

However startx(8) fails.  I see this error message in /var/log/XFree86.0
.log on bebox and prep.  ('offset' is different)

  Fatal server error:
  R_PPC_REL24 PLT offset 1095c6c8 too large


It explains prep here.
My prep machine has a vga with console.

  vga0 at pci0 dev 14 function 0: S3 86C864-1 ("Vision864") (rev. 0x00)


My XF86Config attached to this mail.

I saw the error as which this was the same though I builded with
'USE_JEMALLOC=no' as seen with macppc.

In addition, I did the following correction, and obtained a more detailed
log.


cvs diff: Diffing xfree/xc/programs/Xserver/hw/xfree86/loader
Index: xfree/xc/programs/Xserver/hw/xfree86/loader/elfloader.c
===================================================================
RCS file: 
/cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/loader/elfloader.c,v
retrieving revision 1.6
diff -u -r1.6 elfloader.c
--- xfree/xc/programs/Xserver/hw/xfree86/loader/elfloader.c     11 Oct 2007 
19:03:22 -0000      1.6
+++ xfree/xc/programs/Xserver/hw/xfree86/loader/elfloader.c     22 Oct 2008 
03:38:18 -0000
@@ -105,6 +105,7 @@
 #define LOADERDEBUG 0
 #endif
 
+#define LOADERDEBUG 1
 #if LOADERDEBUG
 # define ELFDEBUG ErrorF
 #endif


In addition, I did the following correction, and obtained a more detailed
log (over 30MB). The part is appended.

I do not understand the means to solve this problem at all.
Do you have any ideas?

Thanks,
--
kiyohara
? distrib/sets/lists/xserver/md.bebox
? distrib/sets/lists/xserver/md.prep
Index: libexec/ld.elf_so/rtld.c
===================================================================
RCS file: /cvsroot/src/libexec/ld.elf_so/rtld.c,v
retrieving revision 1.120
diff -u -r1.120 rtld.c
--- libexec/ld.elf_so/rtld.c    24 Jul 2008 04:39:25 -0000      1.120
+++ libexec/ld.elf_so/rtld.c    22 Oct 2008 02:39:38 -0000
@@ -813,6 +813,12 @@
        return(NULL);
 }
 
+static void *
+hackish_return_address(void)
+{
+       return __builtin_return_address(1);
+}
+
 __strong_alias(__dlsym,dlsym)
 void *
 dlsym(void *handle, const char *name)
@@ -832,7 +838,8 @@
        case (intptr_t)RTLD_NEXT:
        case (intptr_t)RTLD_DEFAULT:
        case (intptr_t)RTLD_SELF:
-               retaddr = __builtin_return_address(0); /* __GNUC__ only */
+               /* retaddr = __builtin_return_address(0);*/ /* __GNUC__ only */
+               retaddr = hackish_return_address();
                if ((obj = _rtld_obj_from_addr(retaddr)) == NULL) {
                        _rtld_error("Cannot determine caller's shared object");
                        return NULL;
Index: share/mk/bsd.x11.mk
===================================================================
RCS file: /cvsroot/src/share/mk/bsd.x11.mk,v
retrieving revision 1.67
diff -u -r1.67 bsd.x11.mk
--- share/mk/bsd.x11.mk 15 Sep 2008 18:21:48 -0000      1.67
+++ share/mk/bsd.x11.mk 22 Oct 2008 02:40:05 -0000
@@ -116,11 +116,13 @@
 .endif
 
 .if ${MACHINE} == "amd64"      || \
+    ${MACHINE} == "bebox"      || \
     ${MACHINE} == "cats"       || \
     ${MACHINE} == "i386"       || \
     ${MACHINE} == "macppc"     || \
     ${MACHINE} == "netwinder"  || \
     ${MACHINE} == "ofppc"      || \
+    ${MACHINE} == "prep"       || \
     ${MACHINE} == "sgimips"    || \
     ${MACHINE} == "sparc64"    || \
     ${MACHINE} == "sparc"      || \
Index: sys/arch/bebox/include/param.h
===================================================================
RCS file: /cvsroot/src/sys/arch/bebox/include/param.h,v
retrieving revision 1.10
diff -u -r1.10 param.h
--- sys/arch/bebox/include/param.h      17 Oct 2007 19:54:00 -0000      1.10
+++ sys/arch/bebox/include/param.h      22 Oct 2008 02:40:13 -0000
@@ -49,3 +49,6 @@
 #define        KERNBASE        0x3100
 
 #include <powerpc/param.h>
+
+/* at this offset we mmap() the PCI IO range in display drivers */
+#define PCI_MAGIC_IO_RANGE     0xf2000000
Index: sys/arch/prep/include/param.h
===================================================================
RCS file: /cvsroot/src/sys/arch/prep/include/param.h,v
retrieving revision 1.4
diff -u -r1.4 param.h
--- sys/arch/prep/include/param.h       17 Jun 2001 16:01:29 -0000      1.4
+++ sys/arch/prep/include/param.h       22 Oct 2008 02:40:37 -0000
@@ -47,3 +47,6 @@
 #define        KERNBASE        0x100000
 
 #include <powerpc/param.h>
+
+/* at this offset we mmap() the PCI IO range in display drivers */
+#define PCI_MAGIC_IO_RANGE     0xf2000000
Index: x11/Xserver/Makefile.common
===================================================================
RCS file: /cvsroot/src/x11/Xserver/Makefile.common,v
retrieving revision 1.34
diff -u -r1.34 Makefile.common
--- x11/Xserver/Makefile.common 8 Mar 2008 10:38:59 -0000       1.34
+++ x11/Xserver/Makefile.common 22 Oct 2008 02:41:49 -0000
@@ -49,7 +49,8 @@
     ${MACHINE} == "macppc" || ${MACHINE} == "cats" || \
     ${MACHINE} == "sgimips" || ${MACHINE} == "sparc64" || \
     ${MACHINE} == "sparc" || ${MACHINE} == "ofppc" || \
-    ${MACHINE} == "netwinder" || ${MACHINE} == "shark"
+    ${MACHINE} == "netwinder" || ${MACHINE} == "shark" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 XSERVER_NEEDS_XFONT=   yes
 XSERVER_NEEDS_MIEXT=   yes
 XSERVER_XFREE86=       yes
Index: x11/Xserver/hw/xfree86/drivers/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/drivers/Makefile,v
retrieving revision 1.22
diff -u -r1.22 Makefile
--- x11/Xserver/hw/xfree86/drivers/Makefile     8 Mar 2008 10:38:59 -0000       
1.22
+++ x11/Xserver/hw/xfree86/drivers/Makefile     22 Oct 2008 02:41:50 -0000
@@ -11,7 +11,8 @@
 SUBDIR+=       i740 i810 neomagic via vmware
 .endif
 
-.if ${MACHINE} != "macppc" && ${MACHINE} != "sgimips" && ${MACHINE} != "ofppc"
+.if ${MACHINE} != "macppc" && ${MACHINE} != "sgimips" && \
+    ${MACHINE} != "ofppc" && ${MACHINE} != "bebox" && ${MACHINE} != "prep"
 SUBDIR+=       apm ark cirrus cyrix dummy i128 nsc \
                rendition siliconmotion tga tseng vesa
 .endif
Index: x11/Xserver/hw/xfree86/drivers/ati/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/drivers/ati/Makefile,v
retrieving revision 1.6
diff -u -r1.6 Makefile
--- x11/Xserver/hw/xfree86/drivers/ati/Makefile 8 Mar 2008 10:38:59 -0000       
1.6
+++ x11/Xserver/hw/xfree86/drivers/ati/Makefile 22 Oct 2008 02:41:50 -0000
@@ -57,7 +57,8 @@
 # XXX from the Imakefile
 # -DAVOID_NON_PCI must be defined for those platforms that do not
 # tolerate PCI master aborts.
-.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
+.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 CPPFLAGS+=     -DAVOID_NON_PCI
 .endif
 
Index: x11/Xserver/hw/xfree86/drivers/atimisc/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/drivers/atimisc/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- x11/Xserver/hw/xfree86/drivers/atimisc/Makefile     8 Mar 2008 10:38:59 
-0000       1.5
+++ x11/Xserver/hw/xfree86/drivers/atimisc/Makefile     22 Oct 2008 02:41:50 
-0000
@@ -67,7 +67,8 @@
 # XXX from the Imakefile
 # -DAVOID_NON_PCI must be defined for those platforms that do not
 # tolerate PCI master aborts.
-.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
+.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 CPPFLAGS+=     -DAVOID_NON_PCI
 .endif
 
Index: x11/Xserver/hw/xfree86/drivers/chips/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/drivers/chips/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- x11/Xserver/hw/xfree86/drivers/chips/Makefile       8 Mar 2008 10:38:59 
-0000       1.5
+++ x11/Xserver/hw/xfree86/drivers/chips/Makefile       22 Oct 2008 02:41:50 
-0000
@@ -42,7 +42,8 @@
 
 CPPFLAGS+=     -DPSZ=8
 
-.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
+.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 CPPFLAGS+=     -DNO_VBE
 .endif
 
Index: x11/Xserver/hw/xfree86/drivers/glint/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/drivers/glint/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- x11/Xserver/hw/xfree86/drivers/glint/Makefile       8 Mar 2008 10:39:00 
-0000       1.5
+++ x11/Xserver/hw/xfree86/drivers/glint/Makefile       22 Oct 2008 02:41:52 
-0000
@@ -14,7 +14,8 @@
        TIramdac.c glint_shadow.c sx_accel.c glint_dga.c
 
 .if ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "macppc" || \
-    ${MACHINE} == "ofppc"
+    ${MACHINE} == "ofppc" || ${MACHINE} == "bebox" || \
+    ${MACHINE} == "prep"
 CPPFLAGS+=     -DGLINT_AVOID_INT10
 .endif
 
Index: x11/Xserver/hw/xfree86/drivers/r128/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/drivers/r128/Makefile,v
retrieving revision 1.6
diff -u -r1.6 Makefile
--- x11/Xserver/hw/xfree86/drivers/r128/Makefile        8 Mar 2008 10:39:00 
-0000       1.6
+++ x11/Xserver/hw/xfree86/drivers/r128/Makefile        22 Oct 2008 02:41:52 
-0000
@@ -52,7 +52,8 @@
 .endif
 
 .if ${MACHINE} == "macppc" || ${MACHINE} == "sparc" || \
-    ${MACHINE} == "sparc64" || ${MACHINE} == "ofppc"
+    ${MACHINE} == "sparc64" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 CPPFLAGS+=     -DAVOID_VGAHW
 .endif
        
Index: x11/Xserver/hw/xfree86/xf86/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/xf86/Makefile,v
retrieving revision 1.11
diff -u -r1.11 Makefile
--- x11/Xserver/hw/xfree86/xf86/Makefile        8 Mar 2008 10:39:00 -0000       
1.11
+++ x11/Xserver/hw/xfree86/xf86/Makefile        22 Oct 2008 02:41:55 -0000
@@ -22,7 +22,8 @@
 CPPFLAGS+=-DUSE_MODULAR_KBD
 .endif
 
-.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
+.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 CPPFLAGS+=-DUSE_MODULAR_KBD
 .endif
 
Index: x11/Xserver/hw/xfree86/xf86_os/Makefile
===================================================================
RCS file: /cvsroot/src/x11/Xserver/hw/xfree86/xf86_os/Makefile,v
retrieving revision 1.19
diff -u -r1.19 Makefile
--- x11/Xserver/hw/xfree86/xf86_os/Makefile     23 Apr 2008 05:13:43 -0000      
1.19
+++ x11/Xserver/hw/xfree86/xf86_os/Makefile     22 Oct 2008 02:41:55 -0000
@@ -30,7 +30,8 @@
 .endfor
 .endif
 
-.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
+.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 SRCS.bsd+=     ppc_video.c bsdResource.c pm_noop.c lnx_agp.c
 .for _FN in ${SRCS.bsd}
 CPPFLAGS.${_FN}=       -DWSCONS_SUPPORT -DUSESTDRES -DHAVE_SYSV_IPC \
@@ -85,11 +86,13 @@
 .if ${MACHINE} == "macppc" || ${MACHINE} == "cats" || \
     ${MACHINE} == "sgimips" || ${MACHINE} == "sparc64" || \
     ${MACHINE} == "sparc" || ${MACHINE} == "netwinder" || \
-    ${MACHINE} == "shark" || ${MACHINE} == "ofppc"
+    ${MACHINE} == "shark" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 SRCS.bus+=     netbsdPci.c
 .endif
 
-.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc"
+.if ${MACHINE} == "macppc" || ${MACHINE} == "ofppc" || \
+    ${MACHINE} == "bebox" || ${MACHINE} == "prep"
 .for _FN in ${SRCS.bus}
 CPPFLAGS.${_FN}=       -DPCI_VIA_TTYE0
 .endfor
@@ -109,7 +112,8 @@
        ${MACHINE} == "cats" || ${MACHINE} == "sgimips" || \
        ${MACHINE} == "sparc64" || ${MACHINE} == "sparc" || \
        ${MACHINE} == "netwinder" || ${MACHINE} == "shark" || \
-       ${MACHINE} == "ofppc"
+       ${MACHINE} == "ofppc" || ${MACHINE} == "bebox" || \
+       ${MACHINE} == "prep"
 SRCS.misc+=    CBUSmemcpy.c CIODelay.c CSlowBcopy.c
 .endif
 
Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
        Load  "dbe"
        Load  "extmod"
        Load  "glx"
        Load  "record"
        Load  "xtrap"
        Load  "speedo"
        Load  "type1"
EndSection
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "Protocol" "wskbd"
        Option      "Device" "/dev/wskbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "wsmouse"
        Option      "Device" "/dev/wsmouse"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "ShadowFB"                  # [<bool>]
        #Option     "VGAClocks"                 # [<bool>]
        #Option     "KGAUniversal"              # [<bool>]
        Identifier  "Card0"
        Driver      "vga"
#       Driver      "s3"
        VendorName  "S3 Inc."
        BoardName   "86c864 [Vision 864 DRAM] vers 1"
        BusID       "PCI:0:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
#       SubSection "Display"
#               Viewport   0 0
#               Depth     1
#       EndSubSection
#       SubSection "Display"
#               Viewport   0 0
#               Depth     4
#       EndSubSection
#       SubSection "Display"
#               Viewport   0 0
#               Depth     8
#       EndSubSection
#       SubSection "Display"
#               Viewport   0 0
#               Depth     15
#       EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

(II) Module xf1bpp: vendor="The XFree86 Project"
        compiled for 4.5.0, module version = 1.0.0
        ABI class: XFree86 ANSI C Emulation, version 0.3
(II) do I need RAC?  No, I don't.
(II) resource ranges after preInit:
        [0] 0   0       0xff800000 - 0xffffffff (0x800000) MS[B]
        [1] -1  0       0xffffffff - 0xffffffff (0x1) MX[B]
        [2] -1  0       0x00000000 - 0x00000000 (0x1) MX[B]
        [3] -1  0       0x00810000 - 0x0081ffff (0x10000) MX[B](B)
        [4] 0   0       0x000a0000 - 0x000affff (0x10000) MS[B]
        [5] 0   0       0x000b0000 - 0x000b7fff (0x8000) MS[B](OprU)
        [6] 0   0       0x000b8000 - 0x000bffff (0x8000) MS[B](OprU)
        [7] -1  0       0x0000ffff - 0x0000ffff (0x1) IX[B]
        [8] -1  0       0x00000000 - 0x00000000 (0x1) IX[B]
        [9] 0   0       0x000003b0 - 0x000003bb (0xc) IS[B]
        [10] 0  0       0x000003c0 - 0x000003df (0x20) IS[B]
(WW) VGA(0): Cannot read colourmap from VGA.  Will restore with default
(==) VGA(0): DPMS disabled
(==) RandR enabled
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x1788, r_info 0x0x5d0a
1788 93 10
0
ElfGetSymbolNameIndex(5d,b) fbScreenInit 1 0 0
***Unable to resolve symbol fbScreenInit
ElfDelayRelocation 0xef70d760: file 0xef6333a0, sec 1, r_offset 0x1788, r_info 
0x5d0a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x17a0, r_info 0x0x390a
17a0 57 10
0
ElfGetSymbolNameIndex(39,b) fbPictureInit 1 0 0
***Unable to resolve symbol fbPictureInit
ElfDelayRelocation 0xef70d660: file 0xef6333a0, sec 1, r_offset 0x17a0, r_info 
0x390a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x17b0, r_info 0x0x5f0a
17b0 95 10
0
ElfGetSymbolNameIndex(5f,b) ShadowFBInit 1 0 0
***Unable to resolve symbol ShadowFBInit
ElfDelayRelocation 0xef70d670: file 0xef6333a0, sec 1, r_offset 0x17b0, r_info 
0x5f0a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x18d0, r_info 0x0x5d0a
18d0 93 10
0
ElfGetSymbolNameIndex(5d,b) fbScreenInit 1 0 0
***Unable to resolve symbol fbScreenInit
ElfDelayRelocation 0xef70d680: file 0xef6333a0, sec 1, r_offset 0x18d0, r_info 
0x5d0a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x18e8, r_info 0x0x390a
18e8 57 10
0
ElfGetSymbolNameIndex(39,b) fbPictureInit 1 0 0
***Unable to resolve symbol fbPictureInit
ElfDelayRelocation 0xef70d690: file 0xef6333a0, sec 1, r_offset 0x18e8, r_info 
0x390a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x18f8, r_info 0x0x5f0a
18f8 95 10
0
ElfGetSymbolNameIndex(5f,b) ShadowFBInit 1 0 0
***Unable to resolve symbol ShadowFBInit
ElfDelayRelocation 0xef70d6a0: file 0xef6333a0, sec 1, r_offset 0x18f8, r_info 
0x5f0a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x1920, r_info 0x0x5d0a
1920 93 10
0
ElfGetSymbolNameIndex(5d,b) fbScreenInit 1 0 0
***Unable to resolve symbol fbScreenInit
ElfDelayRelocation 0xef70d6b0: file 0xef6333a0, sec 1, r_offset 0x1920, r_info 
0x5d0a, r_addend 0x0
ResolveSymbols: file 0xef6333a0, sec 1, r_offset 0x1938, r_info 0x0x390a
1938 57 10
0
ElfGetSymbolNameIndex(39,b) fbPictureInit 1 0 0
***Unable to resolve symbol fbPictureInit
ElfDelayRelocation 0xef70d6c0: file 0xef6333a0, sec 1, r_offset 0x1938, r_info 
0x390a, r_addend 0x0
1938 57 10
0
ElfGetSymbolNameIndex(39,b) fbPictureInit 1 0 0
R_PPC_REL24 fbPictureInit       secp=ef6a2000   symval=186f120  dest32=ef6a3938 
*dest32=48000001        S+A-P=121cb7e8  R_PPC_REL24 offset 121cb7e8 too large
PLT offset is 1095c6c8

Fatal server error:
R_PPC_REL24 PLT offset 1095c6c8 too large


When reporting a problem related to a server crash, please send
the full server output, not just the last messages.
This can be found in the log file "/var/log/XFree86.0.log".
Please report problems to xfree86%xfree86.org.@localhost



Home | Main Index | Thread Index | Old Index