pkgsrc-Bugs archive

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

pkg/43928: pkgsrc cairo 1.10 128-bit integer division problem with gcc 4.1 on DragonFly BSD x86_64



>Number:         43928
>Category:       pkg
>Synopsis:       pkgsrc cairo 1.10 128-bit integer division problem with gcc 
>4.1 on DragonFly BSD x86_64
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Sep 29 15:40:00 +0000 2010
>Originator:     David Shao
>Release:        DragonFly BSD 2.7.3 with patches from Linux 2.6.34 drm
>Organization:
>Environment:
DragonFly  2.7-DEVELOPMENT DragonFly v2.7.3.940.g0b3b7-DEVELOPMENT #0: Sat Sep 
25 00:06:50 UTC 2010     root@:/usr/obj/usr/src/sys/X86_64_GENERIC  x86_64
>Description:
This bug is similar to one encountered by DragonFly BSD for gstreamer in NetBSD 
Problem Report #43082.

128-bit integer division using gcc 4.1 on DragonFly BSD x86_64 is optimized to 
use internal functions that are not actually defined, causing linkage errors 
when trying to build say pango.


>How-To-Repeat:
pkgsrc git on DragonFly BSD latest commit

    commit c60a0b325ed2e28931e45d849c6dbb2c093fe737
    Date:   Sat Sep 25 12:29:01 2010 +0000

I have not tested on i386 DragonFly BSD; however, the similar gstreamer bug 
manifested itself only on x86_64.



>Fix:
The following is only a partial fix as it patches the configure script to 
simply not set either HAVE_UINT128_T or HAVE___UINT128_T to 1 on
DragonFly BSD.   It does not account for the difference between x86_64 and 
i386; nor does it account for DragonFly BSD possibly switching someday to gcc 
4.4+ as the default compiler.

diff --git a/graphics/cairo/distinfo b/graphics/cairo/distinfo
index 61fd9fa..b67edea 100644
--- a/graphics/cairo/distinfo
+++ b/graphics/cairo/distinfo
@@ -4,5 +4,5 @@ SHA1 (cairo-1.10.0.tar.gz) = 
efe7e47408d5188690228ccadc8523652f6bf702
 RMD160 (cairo-1.10.0.tar.gz) = fa65d4f3926308857d13f3ed0c100f89f075dc01
 Size (cairo-1.10.0.tar.gz) = 24022822 bytes
 SHA1 (patch-aa) = f211b2a5fce4ff65f280f79fbb78e1a530b9b165
-SHA1 (patch-ab) = cf6031bdbda5162ac6929be5cd2b8313882c75ed
+SHA1 (patch-ab) = f0f31b10d61600d1600b2a299b97d22e2462bd7b
 SHA1 (patch-ac) = 76f29729c2b0ed3b1dc98960e1d9c9061a1b1440
diff --git a/graphics/cairo/patches/patch-ab b/graphics/cairo/patches/patch-ab
index 72d3df0..42dc6c8 100644
--- a/graphics/cairo/patches/patch-ab
+++ b/graphics/cairo/patches/patch-ab
@@ -2,9 +2,47 @@ $NetBSD$
 
 Fix unportable test construct.
 
---- configure.orig     2010-09-13 11:08:31.000000000 +0000
+--- configure.orig     2010-09-06 16:16:46 +0000
 +++ configure
-@@ -21447,7 +21447,7 @@ xlib_xcb_NONPKGCONFIG_LIBS="$ac_env_xlib
+@@ -18258,19 +18258,35 @@ fi
+ ac_fn_c_check_type "$LINENO" "uint128_t" "ac_cv_type_uint128_t" 
"$ac_includes_default"
+ if test "x$ac_cv_type_uint128_t" = x""yes; then :
+ 
++case $host_os in
++dragonfly*)
++cat >>confdefs.h <<_ACEOF
++#define HAVE_UINT128_T 0
++_ACEOF
++;;
++*)
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_UINT128_T 1
+ _ACEOF
+-
++;;
++esac
+ 
+ fi
+ ac_fn_c_check_type "$LINENO" "__uint128_t" "ac_cv_type___uint128_t" 
"$ac_includes_default"
+ if test "x$ac_cv_type___uint128_t" = x""yes; then :
+ 
++case $host_os in
++dragonfly*)
++cat >>confdefs.h <<_ACEOF
++#define HAVE___UINT128_T 0
++_ACEOF
++;;
++*)
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE___UINT128_T 1
+ _ACEOF
+-
++;;
++esac
+ 
+ fi
+ 
+@@ -21447,7 +21463,7 @@ xlib_xcb_NONPKGCONFIG_LIBS="$ac_env_xlib
  
xlib_xcb_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xlib_xcb_NONPKGCONFIG_EXTRA_LIBS_value"
  
  
@@ -13,7 +51,7 @@ Fix unportable test construct.
      xlib_xcb_REQUIRES="x11-xcb"
  
  pkg_failed=no
-@@ -21797,7 +21797,7 @@ xcb_shm_NONPKGCONFIG_LIBS="$ac_env_xcb_s
+@@ -21797,7 +21813,7 @@ xcb_shm_NONPKGCONFIG_LIBS="$ac_env_xcb_s
  
xcb_shm_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xcb_shm_NONPKGCONFIG_EXTRA_LIBS_value"
  
  
@@ -22,7 +60,7 @@ Fix unportable test construct.
        xcb_shm_REQUIRES="xcb-shm"
  
  pkg_failed=no
-@@ -25203,7 +25203,7 @@ drm_xr_NONPKGCONFIG_LIBS="$ac_env_drm_xr
+@@ -25203,7 +25219,7 @@ drm_xr_NONPKGCONFIG_LIBS="$ac_env_drm_xr
  drm_xr_NONPKGCONFIG_EXTRA_LIBS="$ac_env_drm_xr_NONPKGCONFIG_EXTRA_LIBS_value"
  
  
@@ -31,7 +69,7 @@ Fix unportable test construct.
        drm_xr_REQUIRES="xorg-server >= 1.6 xproto xextproto >= 7.0.99.1 
renderproto x11"
  
  pkg_failed=no
-@@ -25845,7 +25845,7 @@ xcb_drm_NONPKGCONFIG_LIBS="$ac_env_xcb_d
+@@ -25845,7 +25861,7 @@ xcb_drm_NONPKGCONFIG_LIBS="$ac_env_xcb_d
  
xcb_drm_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xcb_drm_NONPKGCONFIG_EXTRA_LIBS_value"
  
  
@@ -40,3 +78,14 @@ Fix unportable test construct.
        xcb_drm_REQUIRES="xcb-dri2"
  
  pkg_failed=no
+@@ -35496,6 +35512,10 @@ do
+   case $ac_option in
+   # Handling of the options.
+   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++      : Avoid regenerating within pkgsrc
++      exit 0
++      : Avoid regenerating within pkgsrc
++      exit 0
+     ac_cs_recheck=: ;;
+   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+     $as_echo "$ac_cs_version"; exit ;;



Home | Main Index | Thread Index | Old Index