Package: svgalib
Version: 1:1.4.3-27
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu karmic ubuntu-patch
In Ubuntu, we've applied the attached patch to achieve the following:
* 041_rename_round.patch: rename round() in utils/gtf/gtfcalc.c to fix
FTBFS due to conflict with the one defined in math.h (LP: #449747).
We thought you might be interested in doing the same.
The build fails with the following error:
cc -Wall -Wstrict-prototypes -Wall -Wstrict-prototypes -fPIC
-I/build/buildd/svgalib-1.4.3/include -I. -Wall -Wstrict-prototypes -fPIC
-I/build/buildd/svgalib-1.4.3/include -I. -g -O2 -I../include
-I/build/buildd/svgalib-1.4.3/src -L/build/buildd/svgalib-1.4.3/sharedlib -o
gtfcalc -DTESTING_GTF gtf/gtfcalc.c -lvga -lm
gtf/gtfcalc.c:67: error: static declaration of 'round' follows non-static
declaration
make[2]: *** [gtfcalc] Error 1
http://launchpadlibrarian.net/32346787/buildlog_ubuntu-karmic-i386.svgalib_1%3A1.4.3-27_FAILEDTOBUILD.txt.gz
-- System Information:
Debian Release: 5.0
APT prefers jaunty-updates
APT policy: (500, 'jaunty-updates'), (500, 'jaunty-security'), (500,
'jaunty-proposed'), (500, 'jaunty-backports'), (500, 'jaunty')
Architecture: i386 (i686)
Kernel: Linux 2.6.28-15-generic (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Ubuntu: https://bugs.launchpad.net/ubuntu/+source/svgalib/+bug/449747
Description: rename round() in utils/gtf/gtfcalc.c to fix FTBFS due to
conflict with the one defined in math.h
Index: svgalib-1.4.3/utils/gtf/gtfcalc.c
===================================================================
--- svgalib-1.4.3.orig/utils/gtf/gtfcalc.c 2009-10-12 22:05:29.000000000 +0400
+++ svgalib-1.4.3/utils/gtf/gtfcalc.c 2009-10-12 22:06:00.000000000 +0400
@@ -64,7 +64,7 @@
/*-------------------------- Implementation -------------------------------*/
-static double round(double v)
+static double round_local(double v)
{
return floor(v + 0.5);
}
@@ -84,9 +84,9 @@
****************************************************************************/
{
c->margin = GC.margin;
- c->cellGran = round(GC.cellGran);
- c->minPorch = round(GC.minPorch);
- c->vSyncRqd = round(GC.vSyncRqd);
+ c->cellGran = round_local(GC.cellGran);
+ c->minPorch = round_local(GC.minPorch);
+ c->vSyncRqd = round_local(GC.vSyncRqd);
c->hSync = GC.hSync;
c->minVSyncBP = GC.minVSyncBP;
if (GC.k == 0)
@@ -140,13 +140,13 @@
vFreq = hFreq = dotClock = freq;
/* Round pixels to character cell granularity */
- hPixels = round(hPixels / c.cellGran) * c.cellGran;
+ hPixels = round_local(hPixels / c.cellGran) * c.cellGran;
/* For interlaced mode halve the vertical parameters, and double
* the required field refresh rate.
*/
if (wantInterlace) {
- vLines = round(vLines / 2);
+ vLines = round_local(vLines / 2);
vFieldRate = vFreq * 2;
dotClock = dotClock * 2;
interlace = 0.5;
@@ -158,8 +158,8 @@
/* Determine the lines for margins */
if (wantMargins) {
- topMarginLines = round(c.margin / 100 * vLines);
- botMarginLines = round(c.margin / 100 * vLines);
+ topMarginLines = round_local(c.margin / 100 * vLines);
+ botMarginLines = round_local(c.margin / 100 * vLines);
}
else {
topMarginLines = 0;
@@ -173,11 +173,11 @@
(vLines + (2*topMarginLines) + c.minPorch + interlace) * 1000000;
/* Find the number of lines in vSync + back porch */
- vSyncBP = round(c.minVSyncBP / hPeriodEst);
+ vSyncBP = round_local(c.minVSyncBP / hPeriodEst);
}
else if (type == GTF_lockHF) {
/* Find the number of lines in vSync + back porch */
- vSyncBP = round((c.minVSyncBP * hFreq) / 1000);
+ vSyncBP = round_local((c.minVSyncBP * hFreq) / 1000);
}
/* Find the number of lines in the V back porch alone */
@@ -205,8 +205,8 @@
/* Find the number of pixels in the left and right margins */
if (wantMargins) {
- leftMarginPixels = round(hPixels * c.margin) / (100 * c.cellGran);
- rightMarginPixels = round(hPixels * c.margin) / (100 * c.cellGran);
+ leftMarginPixels = round_local(hPixels * c.margin) / (100 * c.cellGran);
+ rightMarginPixels = round_local(hPixels * c.margin) / (100 * c.cellGran);
}
else {
leftMarginPixels = 0;
@@ -235,17 +235,17 @@
}
/* Find the number of pixels in blanking time */
- hBlankPixels = round((hTotalActivePixels * idealDutyCycle) /
+ hBlankPixels = round_local((hTotalActivePixels * idealDutyCycle) /
((100 - idealDutyCycle) * 2 * c.cellGran)) * (2 * c.cellGran);
/* Find the total number of pixels */
hTotalPixels = hTotalActivePixels + hBlankPixels;
/* Find the horizontal back porch */
- hBackPorch = round((hBlankPixels / 2) / c.cellGran) * c.cellGran;
+ hBackPorch = round_local((hBlankPixels / 2) / c.cellGran) * c.cellGran;
/* Find the horizontal sync width */
- hSyncWidth = round(((c.hSync/100) * hTotalPixels) / c.cellGran) * c.cellGran;
+ hSyncWidth = round_local(((c.hSync/100) * hTotalPixels) / c.cellGran) * c.cellGran;
/* Find the horizontal sync + back porch */
hSyncBP = hBackPorch + hSyncWidth;
@@ -258,7 +258,7 @@
hPeriod = 1000 / hFreq;
/* Find the number of lines in vSync + back porch */
- vSyncBP = round((c.minVSyncBP * hFreq) / 1000);
+ vSyncBP = round_local((c.minVSyncBP * hFreq) / 1000);
/* Find the number of lines in the V back porch alone */
vBackPorch = vSyncBP - c.vSyncRqd;