Package: mono-gmcs
Version: 1.1.13.8-1
Severity: normal

Steps to reproduce:
1) sudo apt-get build-dep mono-gmcs
2) DEB_BUILD_OPTIONS="nostrip debug noopt" fakeroot apt-get --build source 
mono-gmcs

Expected results:
2) mono-gmcs should build without any optimization.

Actual results:
2) mono-gmcs is built using the GCC optmization option -O2. Here's an
example of how gcc is called:

 gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../mono -I../../libgc/include 
-pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
-DMONO_ASSEMBLIES=\"/usr/lib\" -DMONO_CFG_DIR=\"/etc\" -DGC_LINUX_THREADS 
-D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -D_FILE_OFFSET_BITS=64 -O -g 
-O2 -fno-strict-aliasing -Wdeclaration-after-statement -g -Wall -Wunused 
-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes 
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual 
-Wcast-align -Wwrite-strings -mno-tls-direct-seg-refs -MT metadata.lo -MD -MP 
-MF .deps/metadata.Tpo -c metadata.c -o metadata.o >/dev/null 2>&1

Proposed fix:
I suggest the following modification to debian/rules:

--- debian/rules.orig   2006-07-31 11:44:32.000000000 +0000
+++ debian/rules        2006-07-31 11:44:37.000000000 +0000
@@ -32,6 +32,10 @@
        GC = --with-gc=included
 endif

+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -O0
+endif
+
 # Include dpatch stuff.
 include /usr/share/dpatch/dpatch.make

@@ -41,7 +45,7 @@
 build: patch build-stamp
 build-stamp: cli-wrapper
        dh_testdir
-       ./configure $(confflags) --prefix=/usr \
+       CFLAGS=$(CFLAGS) ./configure $(confflags) --prefix=/usr \
          --mandir=\$${prefix}/share/man \
          --infodir=\$${prefix}/share/info --sysconfdir=/etc \
          --with-sigaltstack=no $(GC) --with-static_mono=no \

Here's an example of how gcc gets called after this change:

 gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../mono -I../../libgc/include 
-pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
-DMONO_ASSEMBLIES=\"/usr/lib\" -DMONO_CFG_DIR=\"/etc\" -DGC_LINUX_THREADS 
-D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -D_FILE_OFFSET_BITS=64 -O 
-O0 -fno-strict-aliasing -Wdeclaration-after-statement -g -Wall -Wunused 
-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes 
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual 
-Wcast-align -Wwrite-strings -mno-tls-direct-seg-refs -MT metadata.lo -MD -MP 
-MF .deps/metadata.Tpo -c metadata.c -o metadata.o >/dev/null 2>&1


Btw, during testing I had to constantly

rm mcs/class/lib/net_2_0/mono-api-info.exe 
mcs/class/lib/default/mono-api-info.exe 
mcs/class/Managed.Windows.Forms/resources/System.Windows.Forms.resources  
mcs/class/Managed.Windows.Forms/resources/System.Windows.Forms.en.resources  
mcs/class/Managed.Windows.Forms/resources/System.Windows.Forms.de.resources  
mcs/class/Managed.Windows.Forms/resources/keyboards.resources 
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resources

since the clean target did not remove those files and
dpkg-buildpackage complained about "unrepresentable changes". Maybe
this rm command should be added to debian/rules as well?


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to