Bug 38224

Summary: "make install of XFree86-4-libraries fails on -CURRENT"
Product: Ports & Packages Reporter: Sid Carter <sidcarter>
Component: Individual Port(s)Assignee: freebsd-ports (Nobody) <ports>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Sid Carter 2002-05-18 08:10:02 UTC
During make install , the port shows:

installing in lib/Xdmcp...
/usr/bin/install -c -m 0644 libXdmcp.a /usr/X11R6/lib
ranlib  /usr/X11R6/lib/libXdmcp.a
+ /usr/bin/install -c -m 0444 Xdmcp.h /usr/X11R6/include/X11
install in lib/Xdmcp done
installing in lib/XThrStub...
rm -f UIThrStubs.o
LD_LIBRARY_PATH=../../exports/lib cc -c -O -pipe -march=pentiumpro -march=pentiu
mpro  -ansi -pedantic -Dasm=__asm -Wall -Wpointer-arith     -I../.. -I../../expo
rts/include   -DCSRG_BASED  -DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS   -DXUSE_MTS
AFE_API -DXNO_MTSAFE_PWDAPI    -DMALLOC_0_RETURNS_NULL    -ansi -pedantic -Dasm=
__asm -Wall -Wpointer-arith    -I../.. -I../../exports/include   -DCSRG_BASED  -
DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS   -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
  -DMALLOC_0_RETURNS_NULL     -fPIC UIThrStubs.c
UIThrStubs.c:102: alias arg not a string
UIThrStubs.c:103: alias arg not a string
UIThrStubs.c:104: alias arg not a string
UIThrStubs.c:105: alias arg not a string
UIThrStubs.c:106: alias arg not a string
UIThrStubs.c:107: alias arg not a string
UIThrStubs.c:108: alias arg not a string
UIThrStubs.c:109: alias arg not a string
UIThrStubs.c:110: alias arg not a string
UIThrStubs.c:111: alias arg not a string
UIThrStubs.c:113: alias arg not a string
UIThrStubs.c:114: alias arg not a string
UIThrStubs.c:115: alias arg not a string
UIThrStubs.c:131: warning: `_Xthr_self_stub_' defined but not used
UIThrStubs.c:139: warning: `_Xthr_zero_stub_' defined but not used
*** Error code 1

Stop in /usr/ports/x11/XFree86-4-libraries/work/xc/lib/XThrStub.
*** Error code 1

Stop in /usr/ports/x11/XFree86-4-libraries/work/xc/lib.
*** Error code 1

Stop in /usr/ports/x11/XFree86-4-libraries/work/xc.
*** Error code 1

Stop in /usr/ports/x11/XFree86-4-libraries/work/xc.
*** Error code 1

Stop in /usr/ports/x11/XFree86-4-libraries.

How-To-Repeat: 
	cd ${PORTSDIR}/x11/XFree86-4-libraries && make install
Comment 1 Stanislav Grozev 2002-05-29 16:19:13 UTC
the patch on the bottom of this fixes that particular error and the thread
stubs are compiled OK. but, at a later stage I get:

--------

LD_LIBRARY_PATH=../../../../../exports/lib cc -c -O -pipe -march=pentium -march=pentium  -ansi -pedantic -Dasm=__asm -Wall -Wpointer-arith   -I../../../../../exports/include/X11 -I../../../../../include/extensions -I../../../../../extras/Mesa/src/OSmesa -I../../../../../extras/Mesa/src          -I../../../../../extras/Mesa/include   -I../../../../.. -I../../../../../exports/include   -DCSRG_BASED  -DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS   -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI    -DMALLOC_0_RETURNS_NULL      -ansi -pedantic -Dasm=__asm -Wall -Wpointer-arith  -I../../../../../exports/include/X11 -I../../../../../include/extensions -I../../../../../extras/Mesa/src/OSmesa -I../../../../../extras/Mesa/src    -I../../../../../extras/Mesa/include   -I../../../../.. -I../../../../../exports/include   -DCSRG_BASED  -DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS   -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI    -DMALLOC_0_RETURNS_NULL      -fPIC ../../../../../lib/GL/mesa/src/translate.c
In file included from ../../../../../lib/GL/mesa/src/translate.c:779:
../../../../../extras/Mesa/src/trans_tmp.h: In function `trans_1_GLdouble_1ub_elt':
../../../../../extras/Mesa/src/trans_tmp.h:124: could not find a spill register
(insn 96 94 97 (set (subreg:SF (reg:QI 75) 0)
        (plus:SF (reg:SF 8 st(0) [76])
            (reg:SF 9 st(1) [80]))) 525 {*fop_sf_comm_nosse} (insn_list 87 (nil))
    (expr_list:REG_DEAD (reg:SF 8 st(0) [76])
        (nil)))
../../../../../extras/Mesa/src/trans_tmp.h:124: Internal compiler error in failed_reload, at reload1.c:5050
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries/work/xc/lib/GL/mesa/src/OSmesa.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries/work/xc/lib/GL.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries/work/xc/lib.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries/work/xc.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries/work/xc.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries.
*** Error code 1

Stop in /home/scratch/ports/x11/XFree86-4-libraries.

-----------

any ideas to that?

oh, and here's the patch for #pragma weak in lib/XthrStub/UIThrStubs.c

--- UIThrStubs.c.orig	Sun Nov 18 22:13:26 2001
+++ UIThrStubs.c	Wed May 29 17:14:24 2002
@@ -99,6 +99,25 @@
 #else
 #include <pthread.h>
 typedef pthread_t xthread_t;
+#if __GNUC__ >= 3
+static xthread_t _Xthr_self_stub_();
+static int _Xthr_zero_stub_();
+
+xthread_t pthread_self() __attribute__ ((weak, alias ("_Xthr_self_stub_")));
+int pthread_mutex_init() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_mutex_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_mutex_lock() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_mutex_unlock() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_cond_init() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_cond_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_cond_wait() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_cond_signal() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_cond_broadcast() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+/* These are added for libGL */
+int pthread_key_create() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+void * pthread_getspecific() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+int pthread_setspecific() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+#else
 #pragma weak pthread_self = _Xthr_self_stub_
 #pragma weak pthread_mutex_init = _Xthr_zero_stub_
 #pragma weak pthread_mutex_destroy = _Xthr_zero_stub_
@@ -113,6 +132,7 @@
 #pragma weak pthread_key_create = _Xthr_zero_stub_
 #pragma weak pthread_getspecific = _Xthr_zero_stub_
 #pragma weak pthread_setspecific = _Xthr_zero_stub_
+#endif /* __GNUC__ */
 #if defined(_DECTHREADS_) || defined(linux)
 #pragma weak pthread_equal = _Xthr_equal_stub_	/* See Xthreads.h! */
 int
Comment 2 Gerald Pfeifer freebsd_committer freebsd_triage 2002-06-07 17:32:12 UTC
State Changed
From-To: open->analyzed

The compiler crash you are seeing is due to a GCC bug, which has been 
filed with the GCC folks today and which I have marked "high" priority 
there so it will be hopefully fixed for GCC 3.1.1: 
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=6957
Comment 3 Eric Anholt freebsd_committer freebsd_triage 2002-07-14 21:44:32 UTC
State Changed
From-To: analyzed->closed

The compiler bug is fixed in -current, and a patch is in for the UIThrStubs.c 
issue.