This is the mail archive of the frysk@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix build on x86-64


On Sat, 14 Jan 2006, Andrew Cagney wrote:

> Wu Zhou wrote:
> 
> I've put a patched gcc 4.0.x tar-ball up in
> ftp://sources.redhat.com/pub/frysk/RHEL-4/ ; you may want to try it out as an
> interum.   I've updated the build notes to mention this, recommending it for
> FC-4, RHEL 4 pre U3, and even Ubuntu.
> 
> > I can also build frysk on a ppc64 box with some workaround. Maybe I can code
> > a patch for that too?
> >  
> I'm all ears :-)

OK.  Here it is.  I tested it on ppc64.  The build works ok. 
 
ChangeLog:
===============
* frysk-ppc64-skip-cniinner.patch: GCJ get an ICE on cniinner, skip it 
at this time.
* frysk.spec (Patch004): Add patch frysk-ppc64-skip-cniinner.patch.
 (ExclusiveArch): this can able to build on x86, ppc64. Maybe x86-64 too.
 (patch004): If arch is ppc64, apply frysk-ppc64-skip-cniinner.patch.
 (prep): The old config.guess in antlr package fail on ppc64. 
replace it with the shipped config.guess.
 (prep): %{_libdir} will point to /usr/lib64, but frysk can only build as 
32-bits application on ppc64 at this time.
 (EXPORT): ditto.
 (build): gtk2 need to link explicitly with libm on ppc64.  Don't know 
why.
 (post): replace the hard-coded pango modules directory with an 
arch-dependent one.
 
Patch
===============
*** frysk/frysk-imports/tests/Makefile.am	Sat Jan 14 17:38:20 2006
--- frysk/frysk-imports/tests/Makefile.am.new	Sat Jan 14 17:40:13 2006
***************
*** 94,100 ****
  	$(GCJH) -I. cniinner.Child
  	$(GCJH) -I. 'cniinner.Child$$Nested'
  	$(GCJ) -g -I. -c -o cniinner/native.o $(srcdir)/cniinner/native.cxx
! 	$(GCJ) -g -I. --main=cniinner.Child -o cniinner/a.out \
  		$(srcdir)/cniinner/Parent.java \
  		$(srcdir)/cniinner/Child.java \
  		cniinner/native.o
--- 94,100 ----
  	$(GCJH) -I. cniinner.Child
  	$(GCJH) -I. 'cniinner.Child$$Nested'
  	$(GCJ) -g -I. -c -o cniinner/native.o $(srcdir)/cniinner/native.cxx
! #	$(GCJ) -g -I. --main=cniinner.Child -o cniinner/a.out \
  		$(srcdir)/cniinner/Parent.java \
  		$(srcdir)/cniinner/Child.java \
  		cniinner/native.o

*** frysk.spec-4.4	Mon Jan 16 12:52:23 2006
--- frysk.spec	Mon Jan 16 17:06:12 2006
***************
*** 53,58 ****
--- 53,59 ----
  Patch001:	frysk-disable-imports-tests.patch
  Patch002:	frysk-head.patch
  Patch003:	frysk-makefileam.patch
+ Patch004:	frysk-ppc64-skip-cniinner.patch
  Source100:	http://www.antlr.org/download/%{antlr}.tar.gz
  Patch101:	antlr.patch
  Source200:	%{atk}.tar.bz2
***************
*** 135,143 ****
  BuildRequires: vte-devel libgnomeui-devel libgnomecanvas
  Requires: vte
  
- # Only build on i386 for now
- ExclusiveArch: %{ix86}
- 
  %description
  Frysk is an execution-analysis technology implemented using native Java and C++.
  It is aimed at providing developers and sysadmins with the ability to both
--- 136,141 ----
***************
*** 163,168 ****
--- 161,169 ----
  # %patch001 -p2 -b .disable-imports-tests
  # %patch002 -p0 -b .head
  %patch003 -p2 -b .makefileam
+ %ifarch ppc64
+ %patch004 -p1 -b .ppc64-skip-cniinner 
+ %endif
  ./autogen.sh
  popd
  
***************
*** 170,175 ****
--- 171,179 ----
  %setup -D -q -T -c -a100
  pushd %{antlr_srcdir}
  %patch101 -p2
+ %ifarch ppc64
+ /bin/cp -f `rpm -qil automake | grep config.guess` %{antlr_srcdir}/scripts/config.guess
+ %endif
  popd
  
  # UNPACK before any java packages, they need these macros/
***************
*** 332,338 ****
--- 336,348 ----
  
  # export LD_LIBRARY_PATH and PKG_CONFIG_PATH
  
+ %ifarch ppc64
+ export PKG_CONFIG_PATH=$RPM_BUILD_ROOT/%{__frysk_libdir}/pkgconfig:%{_prefix}/lib/pkgconfig
+ %endif
+ %ifnarch ppc64
  export PKG_CONFIG_PATH=$RPM_BUILD_ROOT/%{__frysk_libdir}/pkgconfig:%{_libdir}/pkgconfig
+ %endif
+ 
  export LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{__frysk_libdir}
  
  #----------------------------------------------------------------------
***************
*** 366,372 ****
--- 376,387 ----
  	echo export \'CXX=${CXX:-/usr/bin/g++4}\'
  	echo export \'JAVA=${JAVA:-/usr/bin/gij4}\'
  	echo export \'JV_SCAN=${JV_SCAN:-/usr/bin/jv-scan4}\'
+ 	%ifarch ppc64
+ 	echo export PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-$RPM_BUILD_ROOT/%{__frysk_libdir}/pkgconfig:%{_prefix}/lib/pkgconfig}
+ 	%endif
+ 	%ifnarch ppc64
  	echo export PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-$RPM_BUILD_ROOT/%{__frysk_libdir}/pkgconfig:%{_libdir}/pkgconfig}
+ 	%endif
  	echo export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-$RPM_BUILD_ROOT/%{__frysk_libdir}}
  }
  
***************
*** 609,615 ****
--- 624,635 ----
  
  #------------gtk2------------------------------------------
  
+ %ifarch ppc64
+ %define gtk2_makeflags "GDK_PIXBUF_DEP_CFLAGS = %{GLIB_CFLAGS} -I/usr/include/libpng12" "GDK_PIXBUF_DEP_LIBS = %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib} -lm" "GDK_DEP_CFLAGS = -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API %{GLIB_CFLAGS} %{CAIRO_CFLAGS} %{PANGO_CFLAGS}" "GDK_DEP_LIBS = -L/usr/X11R6/lib -lXrandr -lXrender -lXi -lXinerama -lXext -lX11 %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib} %{lib_fontconfig} -ldl -lXcursor -lXrender -lXext -lXfixes -lX11 -lm" "GTK_DEP_CFLAGS = %{GLIB_CFLAGS} %{PANGO_CFLAGS} %{CAIRO_CFLAGS} %{ATK_CFLAGS}" "GTK_DEP_LIBS = -L/usr/X11R6/lib -lX11 %{lib_pangocairo} %{lib_pango} %{lib_atk} %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib} %{lib_cairo} -ldl -lm" "%{glib_cflags}" "GLIB_LIBS = %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib}" "%{cairo_cflags}" "GDK_PIXBUF_XLIB_DEP_CFLAGS = %{GLIB_CFLAGS} -I/usr/X11R6/include"
+ %endif
+ %ifnarch ppc64
  %define gtk2_makeflags "GDK_PIXBUF_DEP_CFLAGS = %{GLIB_CFLAGS} -I/usr/include/libpng12" "GDK_PIXBUF_DEP_LIBS = %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib}" "GDK_DEP_CFLAGS = -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API %{GLIB_CFLAGS} %{CAIRO_CFLAGS} %{PANGO_CFLAGS}" "GDK_DEP_LIBS = -L/usr/X11R6/lib -lXrandr -lXrender -lXi -lXinerama -lXext -lX11 %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib} %{lib_fontconfig} -ldl -lXcursor -lXrender -lXext -lXfixes -lX11 -lm" "GTK_DEP_CFLAGS = %{GLIB_CFLAGS} %{PANGO_CFLAGS} %{CAIRO_CFLAGS} %{ATK_CFLAGS}" "GTK_DEP_LIBS = -L/usr/X11R6/lib -lX11 %{lib_pangocairo} %{lib_pango} %{lib_atk} %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib} %{lib_cairo} -ldl -lm" "%{glib_cflags}" "GLIB_LIBS = %{lib_gobject} %{lib_gmodule} %{lib_gthread} %{lib_glib}" "%{cairo_cflags}" "GDK_PIXBUF_XLIB_DEP_CFLAGS = %{GLIB_CFLAGS} -I/usr/X11R6/include"
+ %endif
  
  %define gtk2_builddir %{BUILDDIR}/%{gtk2}
  
***************
*** 768,775 ****
  
  %post
  
! mkdir -p %{__frysk_sysconfdir}/pango/i686-redhat-linux-gnu
! %{__frysk_bindir}/frysk-pango-querymodules > %{__frysk_sysconfdir}/pango/i686-redhat-linux-gnu/pango.modules
  
  mkdir -p %{__frysk_sysconfdir}/gtk-2.0
  %{__frysk_bindir}/frysk-gdk-pixbuf-query-loaders > %{__frysk_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
--- 788,805 ----
  
  %post
  
! %ifarch ppc64
! %define arch_pango_modules_dir powerpc64-redhat-linux-gnu
! %endif
! %ifarch %{ix86}
! %define arch_pango_modules_dir i686-redhat-linux-gnu
! %endif
! %ifarch x86_64
! %define arch_pango_modules_dir x86_64-redhat-linux-gnu
! %endif
! 
! mkdir -p %{__frysk_sysconfdir}/pango/%{arch_pango_modules_dir}
! %{__frysk_bindir}/frysk-pango-querymodules > %{__frysk_sysconfdir}/pango/%{arch_pango_modules_dir}/pango.modules
  
  mkdir -p %{__frysk_sysconfdir}/gtk-2.0
  %{__frysk_bindir}/frysk-gdk-pixbuf-query-loaders > %{__frysk_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
***************
*** 778,784 ****
  
  %postun
  
! rm -f %{__frysk_sysconfdir}/pango/i686-redhat-linux-gnu/pango.modules
  rm -f %{__frysk_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
  
  /sbin/ldconfig
--- 808,814 ----
  
  %postun
  
! rm -f %{__frysk_sysconfdir}/pango/%{arch_pango_modules_dir}/pango.modules
  rm -f %{__frysk_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
  
  /sbin/ldconfig


Is it ok?  Maybe I need to test it on x86.  But don't have time today. :-)

Regards
- Wu Zhou


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]