Subject: bug#13528: "find_emacs_zone_regions: too many regions" --with-wide-int on PPC 7447A Mac OS X 10.5.8

From: Peter Dyballa <[email-masked]>
Date: Tue, 22 Jan 2013 23:29:05 +0100

Am 22.01.2013 um 21:46 schrieb Paul Eggert:

> Thanks, does the following fix things for you, and if so, how many
> regions does Emacs report when dumping?

I did not try that patch yet – because I was compiling GNU Emacs from  
the same code basis as yesterday, now without the bootstrap option.  
And it builds with -Os, and if fails when building the bootstrap  
targets with -Os!

I saved all *compilation* buffers. Comparing "make bootstrap with -Os"  
with "make with -Os" leads, when I leave away the initial bootstrap  
paraphernalia, to these "major differences:

make bootstrap:
	make[2]: Leaving directory `.../emacs-24.3.50/lib'
	cd lib-src && make all -w                         \
	  CC='gcc -std=gnu99' CFLAGS='-g -ggdb3 -H -pipe -fPIC -fno-common - 
Os -mcpu=7450 -mtune=G4' CPPFLAGS='-I/sw/include' \
	  LDFLAGS='-L/sw/lib -v -Wl,-v -Wl,-dead_strip_dylibs -Wl,- 
bind_at_load -Wl,-t -L/usr/X11/lib' MAKE='make'
	
	make[2]: Leaving directory `.../emacs-24.3.50/lib-src'
	boot=bootstrap-emacs;                         \
	if [ ! -x "src/$boot" ]; then                                     \
	    cd src; make all -w                                   \
	      CC='gcc -std=gnu99' CFLAGS='-g -ggdb3 -H -pipe -fPIC -fno- 
common -Os -mcpu=7450 -mtune=G4' CPPFLAGS='-I/sw/include'         \
	      LDFLAGS='-L/sw/lib -v -Wl,-v -Wl,-dead_strip_dylibs -Wl,- 
bind_at_load -Wl,-t -L/usr/X11/lib' MAKE='make'  
BOOTSTRAPEMACS="$boot"; \
	fi;

make:
	make[1]: Leaving directory `.../emacs-24.3.50/lib'
	cd lib-src && make all                          \
	  CC='gcc -std=gnu99' CFLAGS='-g -ggdb3 -H -pipe -fPIC -fno-common - 
Os -mcpu=7450 -mtune=G4' CPPFLAGS='-I/sw/include' \
	  LDFLAGS='-L/sw/lib -v -Wl,-v -Wl,-dead_strip_dylibs -Wl,- 
bind_at_load -Wl,-t -L/usr/X11/lib' MAKE='make'
	
	make[1]: Leaving directory `.../emacs-24.3.50/lib-src'
	boot=bootstrap-emacs;                         \
	if [ ! -x "src/$boot" ]; then                                     \
	    cd src; make all                                    \
	      CC='gcc -std=gnu99' CFLAGS='-g -ggdb3 -H -pipe -fPIC -fno- 
common -Os -mcpu=7450 -mtune=G4' CPPFLAGS='-I/sw/include'         \
	      LDFLAGS='-L/sw/lib -v -Wl,-v -Wl,-dead_strip_dylibs -Wl,- 
bind_at_load -Wl,-t -L/usr/X11/lib' MAKE='make'  
BOOTSTRAPEMACS="$boot"; \
	fi;

which certainly is not significant. But then there are some during the  
dumping step:

make bootstrap:
	34 LC_LOAD_DYLIB          52
	 0x14fc080 (sz:   0x2cf1/  0x3f0a)
	 0x1400000 (sz:  0x6b5e4/ 0xfc080)
	 0x27f8000 (sz:   0x6d58/  0x7f80)
	 0x2000000 (sz: 0x6d5600/0x7f8000)
	 0x17f8000 (sz:   0x3fff/  0x5000)

make:
	34 LC_LOAD_DYLIB          52
	 0x14fc080 (sz:   0x2558/  0x3f0a)
	 0x1400000 (sz:  0x2e950/ 0xfc080)
	 0x27f8000 (sz:   0x63b8/  0x7f80)
	 0x2000000 (sz: 0x639917/0x7f8000)
	 0x13f3000 (sz:   0x3fff/  0x5000)

This is just a snapshot from the start, more and subtle differences  
follow like for example (same "line numbers"):

	 0x17b0000 (sz:   0x3fff/  0x5000)
	 0x17a9000 (sz:   0x63c7/  0x7000)
	 0x17a2000 (sz:   0x63bb/  0x7000)
	 0x179d000 (sz:   0x3fff/  0x5000)

vs.

	 0x17d4000 (sz:   0x3fff/  0x5000)
	 0x13d2000 (sz:   0x3fff/  0x5000)
	 0x17cd000 (sz:   0x63bb/  0x7000)
	 0x13cd000 (sz:   0x3fff/  0x5000)

Before I'll try the patch I'll make bootstrap with -O0 so see whether  
this works – unless you recommend something different.

BTW, how do I count these regions? On Mac OS X this count is not  
directly reported and I have no idea how determine the number.

My tries today were 'make clean', configure ..., make.

--
Greetings

   Pete

"A TRUE Klingon warrior does not comment his code."