All of lore.kernel.org
 help / color / mirror / Atom feed
* silo fails to build with e2fsprogs-1.41.14 (undefined references
@ 2011-01-10 19:10 Raúl Porcel
  2011-01-10 19:29 ` silo fails to build with e2fsprogs-1.41.14 (undefined David Miller
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Raúl Porcel @ 2011-01-10 19:10 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: text/plain, Size: 1678 bytes --]

Hi,

SILO fails to build here with e2fsprogs-1.41.14 installed, i'm attaching
the build log.

The failure is:


> sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c mark.S -o mark.o
> ld -m elf32_sparc -N -Ttext 0x280000 -Bstatic -o second crt0.o decomp.o ../common/console.o ../common/printf.o malloc.o ../common/jmp.o ../common/prom.o ../common/tree.o ../common/urem.o ../common/udiv.o ../common/stringops1.o ../common/ffs.o ../common/divdi3.o ../common/udivdi3.o bmark.o main.o cmdline.o disk.o file.o misc.o cfg.o strtol.o ranges.o timer.o memory.o fs/libfs.a mul.o ../common/rem.o ../common/sdiv.o umul.o ../common/stringops2.o ls.o muldi3.o -lext2fs mark.o `sparc-unknown-linux-gnu-gcc -print-libgcc-file-name`
> /usr/lib/libext2fs.a(inline.o): In function `ext2fs_get_memalign':
> (.text+0x3f4): undefined reference to `posix_memalign'
> /usr/lib/libext2fs.a(inode.o): In function `ext2fs_open_inode_scan':
> (.text+0x260): undefined reference to `posix_memalign'
> /usr/lib/libext2fs.a(openfs.o): In function `ext2fs_open2':
> (.text+0x1e8): undefined reference to `posix_memalign'
> /usr/lib/libext2fs.a(rw_bitmaps.o): In function `write_bitmaps':
> (.text+0x60): undefined reference to `posix_memalign'
> /usr/lib/libext2fs.a(rw_bitmaps.o): In function `write_bitmaps':
> (.text+0x264): undefined reference to `posix_memalign'
> /usr/lib/libext2fs.a(rw_bitmaps.o):(.text+0x6c4): more undefined references to `posix_memalign' follow
> make[1]: *** [second] Error 1

The downstream bug is: http://bugs.gentoo.org/show_bug.cgi?id=350677

[-- Attachment #2: build.log --]
[-- Type: text/plain, Size: 16375 bytes --]

^[[32;01m * ^[[39;49;00mPackage:    sys-boot/silo-1.4.14_p20100228
^[[32;01m * ^[[39;49;00mRepository: gentoo
^[[32;01m * ^[[39;49;00mMaintainer: sparc@gentoo.org
^[[32;01m * ^[[39;49;00mUSE:        elibc_glibc kernel_linux sparc userland_GNU
^[[32;01m * ^[[39;49;00mFEATURES:   sandbox
>>> Unpacking source...
>>> Unpacking silo_1.4.14+git20100228.orig.tar.gz to /var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work
>>> Unpacking silo_1.4.14+git20100228-1.diff.gz to /var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work
>>> Source unpacked in /var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work
>>> Compiling source in /var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo ...
make[1]: Entering directory `/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo/common'
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c sdiv.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c rem.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c udiv.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c urem.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c jmp.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c printf.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c console.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9 -o prom.o prom.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c tree.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c stringops2.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c stringops1.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c ffs.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c divdi3.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c udivdi3.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector  -Wl,-O1 -Wl,--as-needed  bin2h.c   -o bin2h
make[1]: Leaving directory `/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo/common'
make[1]: Entering directory `/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo/first'
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c first.S -o first.o
ld -m elf32_sparc -N -Ttext 0x4000 -o first first.o
nm first | grep -v '*ABS*' | sort > first.map
strip first
elftoaout -o first.b first
PT 0 Entry: Loadable to 0x4000[0x1d8] from 0x74[0x1d8] align 0x4
PT 1 Entry: unknown
printf 'SILO'0.99 | dd of=first.b bs=8 conv=notrunc seek=3 count=1
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.000233737 s, 34.2 kB/s
dd if=/dev/zero of=first.b bs=4 count=1 seek=127
1+0 records in
1+0 records out
4 bytes (4 B) copied, 0.000194261 s, 20.6 kB/s
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$/#define DIGIT_OFFSET_TMP 0x\2/p' < first.map > first.h
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$/#define LETTER_OFFSET_TMP 0x\2/p' < first.map >> first.h
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$/#define NUMBER_OFFSET_TMP 0x\2/p' < first.map >> first.h
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9a ultra.S
ld -m elf32_sparc -N -Ttext 0x4000 -o ultra ultra.o
nm ultra | grep -v '*ABS*' | sort > ultra.map
strip ultra
elftoaout -o ultra.b ultra
PT 0 Entry: Loadable to 0x4000[0x1d4] from 0x74[0x1d4] align 0x4
PT 1 Entry: unknown
printf 'SILO'0.99 | dd of=ultra.b bs=8 conv=notrunc seek=3 count=1
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.000247267 s, 32.4 kB/s
printf '\340' | dd of=ultra.b bs=1 count=1 seek=7 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0.000245072 s, 4.1 kB/s
dd if=/dev/zero of=ultra.b bs=4 count=1 seek=127
1+0 records in
1+0 records out
4 bytes (4 B) copied, 0.000200022 s, 20.0 kB/s
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$/#define ULTRA_LETTER_OFFSET_TMP 0x\2/p' < ultra.map > ultra.h
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$/#define ULTRA_NUMBER_OFFSET_TMP 0x\2/p' < ultra.map >> ultra.h
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9a generic.S
ld -m elf32_sparc -N -Ttext 0x4000 -o generic generic.o
nm generic | grep -v '*ABS*' | sort > generic.map
strip generic
elftoaout -o generic.b generic
PT 0 Entry: Loadable to 0x4000[0x400] from 0x200[0x400] align 0x200
PT 1 Entry: unknown
printf 'SILO'0.99 | dd of=generic.b bs=8 conv=notrunc seek=3 count=1
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.000266353 s, 30.0 kB/s
printf '\340' | dd of=generic.b bs=1 count=1 seek=7 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0.000257062 s, 3.9 kB/s
dd if=/dev/zero of=generic.b bs=4 count=1 seek=255
1+0 records in
1+0 records out
4 bytes (4 B) copied, 0.000202898 s, 19.7 kB/s
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$/#define GENERIC_DIGIT_OFFSET_TMP 0x\2/p' < generic.map > generic.h
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$/#define GENERIC_LETTER_OFFSET_TMP 0x\2/p' < generic.map >> generic.h
sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$/#define GENERIC_NUMBER_OFFSET_TMP 0x\2/p' < generic.map >> generic.h
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9a fd.S
ld -m elf32_sparc -N -Ttext 0x4000 -o fd fd.o
nm fd | grep -v '*ABS*' | sort > fd.map
strip fd
elftoaout -o fd.b fd
PT 0 Entry: Loadable to 0x4000[0x400] from 0x200[0x400] align 0x200
PT 1 Entry: unknown
printf 'SILO'0.99 | dd of=fd.b bs=8 conv=notrunc seek=3 count=1
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.000262997 s, 30.4 kB/s
printf '\340' | dd of=fd.b bs=1 count=1 seek=7 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0.00023724 s, 4.2 kB/s
dd if=/dev/zero of=fd.b bs=4 count=1 seek=255
1+0 records in
1+0 records out
4 bytes (4 B) copied, 0.000225489 s, 17.7 kB/s
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -DIMGVERSION='"SILO0.99"' -c ieee32.S
ld -m elf32_sparc -N -Ttext 0x4000 -o ieee32.b ieee32.o
nm ieee32.b | grep -v '*ABS*' | sort > ieee32.map
strip ieee32.b
chmod 644 ieee32.b
make[1]: Leaving directory `/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo/first'
make[1]: Entering directory `/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo/second'
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9 -DIMGVERSION='"SILO0.99"' crt0.S
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -DVERSION='"1.4.14_git2010228_p1"' -c decomp.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -o malloc.o ../common/malloc.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c bmark.S -o bmark.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c main.c -o main.o
main.c: In function 'bootmain':
main.c:1043:19: warning: 'params' may be used uninitialized in this function
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c cmdline.c -o cmdline.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c disk.c -o disk.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c file.c -o file.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c misc.c -o misc.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c cfg.c -o cfg.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c strtol.c -o strtol.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c ranges.c -o ranges.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9a timer.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c -Wa,-Av9 memory.c
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c fs/iom.c -o fs/iom.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c fs/ext2.c -o fs/ext2.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c fs/isofs.c -o fs/isofs.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c fs/romfs.c -o fs/romfs.o
fs/romfs.c:37:0: warning: "BLOCK_SIZE_BITS" redefined
/usr/include/linux/fs.h:27:0: note: this is the location of the previous definition
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c fs/ufs.c -o fs/ufs.o
rm -f fs/libfs.a
ar rc fs/libfs.a fs/iom.o fs/ext2.o fs/isofs.o fs/romfs.o fs/ufs.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c mul.S -o mul.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c umul.S -o umul.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c ls.c -o ls.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c muldi3.S -o muldi3.o
sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -U_FORTIFY_SOURCE -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -fno-stack-protector -c mark.S -o mark.o
ld -m elf32_sparc -N -Ttext 0x280000 -Bstatic -o second crt0.o decomp.o ../common/console.o ../common/printf.o malloc.o ../common/jmp.o ../common/prom.o ../common/tree.o ../common/urem.o ../common/udiv.o ../common/stringops1.o ../common/ffs.o ../common/divdi3.o ../common/udivdi3.o bmark.o main.o cmdline.o disk.o file.o misc.o cfg.o strtol.o ranges.o timer.o memory.o fs/libfs.a mul.o ../common/rem.o ../common/sdiv.o umul.o ../common/stringops2.o ls.o muldi3.o -lext2fs mark.o `sparc-unknown-linux-gnu-gcc -print-libgcc-file-name`
/usr/lib/libext2fs.a(inline.o): In function `ext2fs_get_memalign':
(.text+0x3f4): undefined reference to `posix_memalign'
/usr/lib/libext2fs.a(inode.o): In function `ext2fs_open_inode_scan':
(.text+0x260): undefined reference to `posix_memalign'
/usr/lib/libext2fs.a(openfs.o): In function `ext2fs_open2':
(.text+0x1e8): undefined reference to `posix_memalign'
/usr/lib/libext2fs.a(rw_bitmaps.o): In function `write_bitmaps':
(.text+0x60): undefined reference to `posix_memalign'
/usr/lib/libext2fs.a(rw_bitmaps.o): In function `write_bitmaps':
(.text+0x264): undefined reference to `posix_memalign'
/usr/lib/libext2fs.a(rw_bitmaps.o):(.text+0x6c4): more undefined references to `posix_memalign' follow
make[1]: *** [second] Error 1
make[1]: Leaving directory `/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo/second'
make: *** [all] Error 1
 ^[[31;01m*^[[0m ERROR: sys-boot/silo-1.4.14_p20100228 failed:
 ^[[31;01m*^[[0m   (no error message)
 ^[[31;01m*^[[0m 
 ^[[31;01m*^[[0m Call stack:
 ^[[31;01m*^[[0m     ebuild.sh, line  56:  Called src_compile
 ^[[31;01m*^[[0m   environment, line 2779:  Called die
 ^[[31;01m*^[[0m The specific snippet of code:
 ^[[31;01m*^[[0m           make ${MAKEOPTS} CC="$(tc-getCC)" || die;
 ^[[31;01m*^[[0m 
 ^[[31;01m*^[[0m If you need support, post the output of 'emerge --info =sys-boot/silo-1.4.14_p20100228',
 ^[[31;01m*^[[0m the complete build log and the output of 'emerge -pqv =sys-boot/silo-1.4.14_p20100228'.
 ^[[31;01m*^[[0m The complete build log is located at '/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/temp/build.log'.
 ^[[31;01m*^[[0m The ebuild environment file is located at '/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/temp/environment'.
 ^[[31;01m*^[[0m S: '/var/tmp/portage/sys-boot/silo-1.4.14_p20100228/work/silo'

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
@ 2011-01-10 19:29 ` David Miller
  2011-01-15 12:07 ` silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2011-01-10 19:29 UTC (permalink / raw)
  To: sparclinux

From: Raúl Porcel <armin76@gentoo.org>
Date: Mon, 10 Jan 2011 20:10:36 +0100

> Hi,
> 
> SILO fails to build here with e2fsprogs-1.41.14 installed, i'm attaching
> the build log.

I really appreciate how they make libext2 harder and harder to link into
embedded self-contained things like bootloaders over time.

I just pushed the following fix for this:

--------------------
second: Add dummy posix_memalign stubb for libext2

Reported-by: Raúl Porcel <armin76@gentoo.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
 second/fs/ext2.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/second/fs/ext2.c b/second/fs/ext2.c
index 57f5e9a..12d00dc 100644
--- a/second/fs/ext2.c
+++ b/second/fs/ext2.c
@@ -163,3 +163,9 @@ void *realloc(void *p, int size)
 {
         return NULL;
 }
+
+int posix_memalign(void **memptr, size_t alignment, size_t size)
+{
+	*memptr = NULL;
+	return -1;
+}
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined references
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
  2011-01-10 19:29 ` silo fails to build with e2fsprogs-1.41.14 (undefined David Miller
@ 2011-01-15 12:07 ` Raúl Porcel
  2011-01-15 12:57 ` silo fails to build with e2fsprogs-1.41.14 (undefined Alex Buell
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Raúl Porcel @ 2011-01-15 12:07 UTC (permalink / raw)
  To: sparclinux

On 01/10/2011 08:29 PM, David Miller wrote:
> From: Raúl Porcel <armin76@gentoo.org>
> Date: Mon, 10 Jan 2011 20:10:36 +0100
> 
>> Hi,
>>
>> SILO fails to build here with e2fsprogs-1.41.14 installed, i'm attaching
>> the build log.
> 
> I really appreciate how they make libext2 harder and harder to link into
> embedded self-contained things like bootloaders over time.
> 
> I just pushed the following fix for this:
> <snip>


Hi,

Thanks, it builds, but silo fails to work:

Boot device: disk1  File and args:
SILO Version 1.4.14_git2010228_p1

Unknown ext2 error: 4294967295

Fatal error: Unable to open filesystem

Couldn't load /etc/silo.conf
No config file loaded, you can boot just from this command line
Type [prompath;]part/path_to_image [parameters] on the prompt
E.g. /iommu/sbus/espdma/esp/sd@3,0;4/vmlinux root=/dev/sda4
or 2/vmlinux.live (to load vmlinux.live from 2nd partition of boot disk)
boot:



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
  2011-01-10 19:29 ` silo fails to build with e2fsprogs-1.41.14 (undefined David Miller
  2011-01-15 12:07 ` silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
@ 2011-01-15 12:57 ` Alex Buell
  2011-01-16  5:06 ` David Miller
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Alex Buell @ 2011-01-15 12:57 UTC (permalink / raw)
  To: sparclinux

On Sat, 2011-01-15 at 13:07 +0100, Raúl Porcel wrote:
> On 01/10/2011 08:29 PM, David Miller wrote:
> > From: Raúl Porcel <armin76@gentoo.org>
> > Date: Mon, 10 Jan 2011 20:10:36 +0100
> > 
> >> Hi,
> >>
> >> SILO fails to build here with e2fsprogs-1.41.14 installed, i'm attaching
> >> the build log.
> > 
> > I really appreciate how they make libext2 harder and harder to link into
> > embedded self-contained things like bootloaders over time.
> > 
> > I just pushed the following fix for this:
> > <snip>
> 
> 
> Hi,
> 
> Thanks, it builds, but silo fails to work:
> 
> Boot device: disk1  File and args:
> SILO Version 1.4.14_git2010228_p1
> 
> Unknown ext2 error: 4294967295
> 
> Fatal error: Unable to open filesystem
> 
> Couldn't load /etc/silo.conf
> No config file loaded, you can boot just from this command line
> Type [prompath;]part/path_to_image [parameters] on the prompt
> E.g. /iommu/sbus/espdma/esp/sd@3,0;4/vmlinux root=/dev/sda4
> or 2/vmlinux.live (to load vmlinux.live from 2nd partition of boot disk)
> boot:

This problem exists with all versions of silo linked against
e2fsprogs-1.41.14. 

I think there is a bug in e2fsprogs as it doesn't seem to properly
handle error codes returned by the posix_memalign() function. It's
either that or a proper implementation of posix_memalign() function
needs to be detected through the configure scripts.
-- 
Tactical Nuclear Kittens

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (2 preceding siblings ...)
  2011-01-15 12:57 ` silo fails to build with e2fsprogs-1.41.14 (undefined Alex Buell
@ 2011-01-16  5:06 ` David Miller
  2011-01-17  3:59 ` David Miller
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2011-01-16  5:06 UTC (permalink / raw)
  To: sparclinux

From: Alex Buell <alex.buell@munted.org.uk>
Date: Sat, 15 Jan 2011 12:57:09 +0000

> I think there is a bug in e2fsprogs as it doesn't seem to properly
> handle error codes returned by the posix_memalign() function. It's
> either that or a proper implementation of posix_memalign() function
> needs to be detected through the configure scripts.

I think it requires a real properly functioning posix_memalign().

The issue is that the detection occurs when the e2fsprogs package
is built, and in userland's libc there is in fact a full and
functioning posix_memalign().  So e2fsprogs is doing nothing wrong.

The problem is that SILO is linking e2fsprogs into it's limited
environment, and we have to bolt on hacks over time as e2fsprogs
depends upon newer facilities in userland.

I'll try to fix this.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (3 preceding siblings ...)
  2011-01-16  5:06 ` David Miller
@ 2011-01-17  3:59 ` David Miller
  2011-01-17  4:03 ` Alex Buell
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2011-01-17  3:59 UTC (permalink / raw)
  To: sparclinux

From: Alex Buell <alex.buell@munted.org.uk>
Date: Sat, 15 Jan 2011 12:57:09 +0000

> On Sat, 2011-01-15 at 13:07 +0100, Raúl Porcel wrote:
>> Thanks, it builds, but silo fails to work:
>> 
>> Boot device: disk1  File and args:
>> SILO Version 1.4.14_git2010228_p1
>> 
>> Unknown ext2 error: 4294967295
>> 
>> Fatal error: Unable to open filesystem
>> 
>> Couldn't load /etc/silo.conf
>> No config file loaded, you can boot just from this command line
>> Type [prompath;]part/path_to_image [parameters] on the prompt
>> E.g. /iommu/sbus/espdma/esp/sd@3,0;4/vmlinux root=/dev/sda4
>> or 2/vmlinux.live (to load vmlinux.live from 2nd partition of boot disk)
>> boot:
> 
> This problem exists with all versions of silo linked against
> e2fsprogs-1.41.14. 

Can you guys please test this patch out?  It's against the current
tree.

Thanks!

--------------------
malloc: Provide posix_memalign() implementation.

ext2progs library really wants a working version of this,
and thankfully it's not that hard to do.

Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/common/malloc.c b/common/malloc.c
index cc3946d..d05061b 100644
--- a/common/malloc.c
+++ b/common/malloc.c
@@ -27,6 +27,12 @@ static char *malloc_ptr = (char *) MALLOC_BASE;
 
 static char *last_alloc = 0;
 
+static char *align_ptr_to(char *ptr, unsigned long align)
+{
+    return (char *) ((((unsigned long) ptr) + (align - 1UL)) &
+		     ~(align - 1UL));
+}
+
 void *malloc (int size)
 {
     char *caddr;
@@ -34,10 +40,34 @@ void *malloc (int size)
     caddr = malloc_ptr;
     malloc_ptr += size;
     last_alloc = caddr;
-    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7) & (~7));
+    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
     return caddr;
 }
 
+int posix_memalign(void **memptr, unsigned long alignment, unsigned long size)
+{
+    char *caddr;
+
+    if (alignment & (alignment - 1UL))
+        return -1;
+    if (alignment & (sizeof(void *) - 1UL))
+        return -1;
+
+    if (size = 0) {
+      *memptr = (void *) 0;
+      return 0;
+    }
+
+    caddr = align_ptr_to(malloc_ptr, alignment);
+    malloc_ptr = (caddr + size);
+    last_alloc = caddr;
+    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
+
+    *memptr = caddr;
+
+    return 0;
+}
+
 void free (void *m)
 {
     if (m = last_alloc)
diff --git a/second/fs/ext2.c b/second/fs/ext2.c
index 12d00dc..57f5e9a 100644
--- a/second/fs/ext2.c
+++ b/second/fs/ext2.c
@@ -163,9 +163,3 @@ void *realloc(void *p, int size)
 {
         return NULL;
 }
-
-int posix_memalign(void **memptr, size_t alignment, size_t size)
-{
-	*memptr = NULL;
-	return -1;
-}

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (4 preceding siblings ...)
  2011-01-17  3:59 ` David Miller
@ 2011-01-17  4:03 ` Alex Buell
  2011-01-17 13:22 ` Alex Buell
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Alex Buell @ 2011-01-17  4:03 UTC (permalink / raw)
  To: sparclinux

On Sun, 2011-01-16 at 19:59 -0800, David Miller wrote:
> From: Alex Buell <alex.buell@munted.org.uk>
> Date: Sat, 15 Jan 2011 12:57:09 +0000
> 
> > On Sat, 2011-01-15 at 13:07 +0100, Raúl Porcel wrote:
> >> Thanks, it builds, but silo fails to work:
> >> 
> >> Boot device: disk1  File and args:
> >> SILO Version 1.4.14_git2010228_p1
> >> 
> >> Unknown ext2 error: 4294967295
> >> 
> >> Fatal error: Unable to open filesystem
> >> 
> >> Couldn't load /etc/silo.conf
> >> No config file loaded, you can boot just from this command line
> >> Type [prompath;]part/path_to_image [parameters] on the prompt
> >> E.g. /iommu/sbus/espdma/esp/sd@3,0;4/vmlinux root=/dev/sda4
> >> or 2/vmlinux.live (to load vmlinux.live from 2nd partition of boot disk)
> >> boot:
> > 
> > This problem exists with all versions of silo linked against
> > e2fsprogs-1.41.14. 
> 
> Can you guys please test this patch out?  It's against the current
> tree.
> 
> Thanks!
> 
> --------------------
> malloc: Provide posix_memalign() implementation.
> 
> ext2progs library really wants a working version of this,
> and thankfully it's not that hard to do.
> 
> Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> diff --git a/common/malloc.c b/common/malloc.c
> index cc3946d..d05061b 100644
> --- a/common/malloc.c
> +++ b/common/malloc.c
> @@ -27,6 +27,12 @@ static char *malloc_ptr = (char *) MALLOC_BASE;
>  
>  static char *last_alloc = 0;
>  
> +static char *align_ptr_to(char *ptr, unsigned long align)
> +{
> +    return (char *) ((((unsigned long) ptr) + (align - 1UL)) &
> +		     ~(align - 1UL));
> +}
> +
>  void *malloc (int size)
>  {
>      char *caddr;
> @@ -34,10 +40,34 @@ void *malloc (int size)
>      caddr = malloc_ptr;
>      malloc_ptr += size;
>      last_alloc = caddr;
> -    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7) & (~7));
> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
>      return caddr;
>  }
>  
> +int posix_memalign(void **memptr, unsigned long alignment, unsigned long size)
> +{
> +    char *caddr;
> +
> +    if (alignment & (alignment - 1UL))
> +        return -1;
> +    if (alignment & (sizeof(void *) - 1UL))
> +        return -1;
> +
> +    if (size = 0) {
> +      *memptr = (void *) 0;
> +      return 0;
> +    }
> +
> +    caddr = align_ptr_to(malloc_ptr, alignment);
> +    malloc_ptr = (caddr + size);
> +    last_alloc = caddr;
> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
> +
> +    *memptr = caddr;
> +
> +    return 0;
> +}
> +
>  void free (void *m)
>  {
>      if (m = last_alloc)
> diff --git a/second/fs/ext2.c b/second/fs/ext2.c
> index 12d00dc..57f5e9a 100644
> --- a/second/fs/ext2.c
> +++ b/second/fs/ext2.c
> @@ -163,9 +163,3 @@ void *realloc(void *p, int size)
>  {
>          return NULL;
>  }
> -
> -int posix_memalign(void **memptr, size_t alignment, size_t size)
> -{
> -	*memptr = NULL;
> -	return -1;
> -}

I'll test it first thing tomorrow morning. The 'Blade 2000's busy
cross-compiling PPC packages for my dog-slow iMac at the moment. 
-- 
Tactical Nuclear Kittens

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (5 preceding siblings ...)
  2011-01-17  4:03 ` Alex Buell
@ 2011-01-17 13:22 ` Alex Buell
  2011-01-17 17:02 ` silo fails to build with e2fsprogs-1.41.14 (undefined references Richard Mortimer
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Alex Buell @ 2011-01-17 13:22 UTC (permalink / raw)
  To: sparclinux

On Sun, 2011-01-16 at 19:59 -0800, David Miller wrote:
> From: Alex Buell <alex.buell@munted.org.uk>
> Date: Sat, 15 Jan 2011 12:57:09 +0000
> 
> > On Sat, 2011-01-15 at 13:07 +0100, Raúl Porcel wrote:
> >> Thanks, it builds, but silo fails to work:
> >> 
> >> Boot device: disk1  File and args:
> >> SILO Version 1.4.14_git2010228_p1
> >> 
> >> Unknown ext2 error: 4294967295
> >> 
> >> Fatal error: Unable to open filesystem
> >> 
> >> Couldn't load /etc/silo.conf
> >> No config file loaded, you can boot just from this command line
> >> Type [prompath;]part/path_to_image [parameters] on the prompt
> >> E.g. /iommu/sbus/espdma/esp/sd@3,0;4/vmlinux root=/dev/sda4
> >> or 2/vmlinux.live (to load vmlinux.live from 2nd partition of boot disk)
> >> boot:
> > 
> > This problem exists with all versions of silo linked against
> > e2fsprogs-1.41.14. 
> 
> Can you guys please test this patch out?  It's against the current
> tree.
> 
> Thanks!
> 
> --------------------
> malloc: Provide posix_memalign() implementation.
> 
> ext2progs library really wants a working version of this,
> and thankfully it's not that hard to do.
> 
> Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> diff --git a/common/malloc.c b/common/malloc.c
> index cc3946d..d05061b 100644
> --- a/common/malloc.c
> +++ b/common/malloc.c
> @@ -27,6 +27,12 @@ static char *malloc_ptr = (char *) MALLOC_BASE;
>  
>  static char *last_alloc = 0;
>  
> +static char *align_ptr_to(char *ptr, unsigned long align)
> +{
> +    return (char *) ((((unsigned long) ptr) + (align - 1UL)) &
> +		     ~(align - 1UL));
> +}
> +
>  void *malloc (int size)
>  {
>      char *caddr;
> @@ -34,10 +40,34 @@ void *malloc (int size)
>      caddr = malloc_ptr;
>      malloc_ptr += size;
>      last_alloc = caddr;
> -    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7) & (~7));
> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
>      return caddr;
>  }
>  
> +int posix_memalign(void **memptr, unsigned long alignment, unsigned long size)
> +{
> +    char *caddr;
> +
> +    if (alignment & (alignment - 1UL))
> +        return -1;
> +    if (alignment & (sizeof(void *) - 1UL))
> +        return -1;
> +
> +    if (size = 0) {
> +      *memptr = (void *) 0;
> +      return 0;
> +    }
> +
> +    caddr = align_ptr_to(malloc_ptr, alignment);
> +    malloc_ptr = (caddr + size);
> +    last_alloc = caddr;
> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
> +
> +    *memptr = caddr;
> +
> +    return 0;
> +}
> +
>  void free (void *m)
>  {
>      if (m = last_alloc)
> diff --git a/second/fs/ext2.c b/second/fs/ext2.c
> index 12d00dc..57f5e9a 100644
> --- a/second/fs/ext2.c
> +++ b/second/fs/ext2.c
> @@ -163,9 +163,3 @@ void *realloc(void *p, int size)
>  {
>          return NULL;
>  }
> -
> -int posix_memalign(void **memptr, size_t alignment, size_t size)
> -{
> -	*memptr = NULL;
> -	return -1;
> -}

With that patch, I now get a different error:

SILO Version 1.4.14
	ERROR: Last trap: Memory Address not aligned

Error -256
{0] OK

(Now I've got to boot off my rescue CD and rebuild SILO)

Is anyone else getting the same error?
-- 
Tactical Nuclear Kittens

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined references
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (6 preceding siblings ...)
  2011-01-17 13:22 ` Alex Buell
@ 2011-01-17 17:02 ` Richard Mortimer
  2011-01-17 17:23 ` silo fails to build with e2fsprogs-1.41.14 (undefined Alex Buell
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Richard Mortimer @ 2011-01-17 17:02 UTC (permalink / raw)
  To: sparclinux



On 17/01/2011 13:22, Alex Buell wrote:
> On Sun, 2011-01-16 at 19:59 -0800, David Miller wrote:
>> From: Alex Buell<alex.buell@munted.org.uk>
>> Date: Sat, 15 Jan 2011 12:57:09 +0000
>>
>>> On Sat, 2011-01-15 at 13:07 +0100, Raúl Porcel wrote:
>>>> Thanks, it builds, but silo fails to work:
>>>>
>>>> Boot device: disk1  File and args:
>>>> SILO Version 1.4.14_git2010228_p1
>>>>
>>>> Unknown ext2 error: 4294967295
>>>>
>>>> Fatal error: Unable to open filesystem
>>>>
>>>> Couldn't load /etc/silo.conf
>>>> No config file loaded, you can boot just from this command line
>>>> Type [prompath;]part/path_to_image [parameters] on the prompt
>>>> E.g. /iommu/sbus/espdma/esp/sd@3,0;4/vmlinux root=/dev/sda4
>>>> or 2/vmlinux.live (to load vmlinux.live from 2nd partition of boot disk)
>>>> boot:
>>>
>>> This problem exists with all versions of silo linked against
>>> e2fsprogs-1.41.14.
>>
>> Can you guys please test this patch out?  It's against the current
>> tree.
>>
>> Thanks!
>>
>> --------------------
>> malloc: Provide posix_memalign() implementation.
>>
>> ext2progs library really wants a working version of this,
>> and thankfully it's not that hard to do.
>>
>> Signed-off-by: David S. Miller<davem@davemloft.net>
>>
>> diff --git a/common/malloc.c b/common/malloc.c
>> index cc3946d..d05061b 100644
>> --- a/common/malloc.c
>> +++ b/common/malloc.c
>> @@ -27,6 +27,12 @@ static char *malloc_ptr = (char *) MALLOC_BASE;
>>
>>   static char *last_alloc = 0;
>>
>> +static char *align_ptr_to(char *ptr, unsigned long align)
>> +{
>> +    return (char *) ((((unsigned long) ptr) + (align - 1UL))&
>> +		     ~(align - 1UL));
>> +}
>> +
>>   void *malloc (int size)
>>   {
>>       char *caddr;
>> @@ -34,10 +40,34 @@ void *malloc (int size)
>>       caddr = malloc_ptr;
>>       malloc_ptr += size;
>>       last_alloc = caddr;
>> -    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7)&  (~7));
>> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
I think that should be 8UL because align_ptr_to does -1 to make it 7.

>>       return caddr;
>>   }
>>
>> +int posix_memalign(void **memptr, unsigned long alignment, unsigned long size)
>> +{
>> +    char *caddr;
>> +
>> +    if (alignment&  (alignment - 1UL))
>> +        return -1;
>> +    if (alignment&  (sizeof(void *) - 1UL))
>> +        return -1;
>> +
>> +    if (size = 0) {
>> +      *memptr = (void *) 0;
>> +      return 0;
>> +    }
>> +
>> +    caddr = align_ptr_to(malloc_ptr, alignment);
>> +    malloc_ptr = (caddr + size);
>> +    last_alloc = caddr;
>> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
Ditto

Regards

Richard

>> +
>> +    *memptr = caddr;
>> +
>> +    return 0;
>> +}
>> +
>>   void free (void *m)
>>   {
>>       if (m = last_alloc)
>> diff --git a/second/fs/ext2.c b/second/fs/ext2.c
>> index 12d00dc..57f5e9a 100644
>> --- a/second/fs/ext2.c
>> +++ b/second/fs/ext2.c
>> @@ -163,9 +163,3 @@ void *realloc(void *p, int size)
>>   {
>>           return NULL;
>>   }
>> -
>> -int posix_memalign(void **memptr, size_t alignment, size_t size)
>> -{
>> -	*memptr = NULL;
>> -	return -1;
>> -}
>
> With that patch, I now get a different error:
>
> SILO Version 1.4.14
> 	ERROR: Last trap: Memory Address not aligned
>
> Error -256
> {0] OK
>
> (Now I've got to boot off my rescue CD and rebuild SILO)
>
> Is anyone else getting the same error?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (7 preceding siblings ...)
  2011-01-17 17:02 ` silo fails to build with e2fsprogs-1.41.14 (undefined references Richard Mortimer
@ 2011-01-17 17:23 ` Alex Buell
  2011-01-17 17:35 ` Alex Buell
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Alex Buell @ 2011-01-17 17:23 UTC (permalink / raw)
  To: sparclinux

On Mon, 2011-01-17 at 17:02 +0000, Richard Mortimer wrote:

> >> -    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7)&  (~7));
> >> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
> I think that should be 8UL because align_ptr_to does -1 to make it 7.

> >> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
> Ditto

That would explain the different error, this time it was 256, the
previous error was -1^32. 

I'll change the patch with the new values and see if that works. 
-- 
Tactical Nuclear Kittens

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (8 preceding siblings ...)
  2011-01-17 17:23 ` silo fails to build with e2fsprogs-1.41.14 (undefined Alex Buell
@ 2011-01-17 17:35 ` Alex Buell
  2011-01-17 21:12 ` David Miller
  2011-01-17 21:14 ` David Miller
  11 siblings, 0 replies; 13+ messages in thread
From: Alex Buell @ 2011-01-17 17:35 UTC (permalink / raw)
  To: sparclinux

On Mon, 2011-01-17 at 17:23 +0000, Alex Buell wrote:
> On Mon, 2011-01-17 at 17:02 +0000, Richard Mortimer wrote:
> 
> > >> -    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7)&
> (~7));
> > >> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
> > I think that should be 8UL because align_ptr_to does -1 to make it
> 7.
> 
> > >> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
> > Ditto
> 
> That would explain the different error, this time it was 256, the
> previous error was -1^32. 
> 
> I'll change the patch with the new values and see if that works. 

Well done, that fixed the problem. Thank you. For anyone who's
interested, here's the patch in full with Richard Mortimer's changes:

diff -uNr silo-1.4.14/second/fs/ext2.c silo/second/fs/ext2.c
--- a/common/malloc.c
+++ b/common/malloc.c
@@ -27,6 +27,12 @@ static char *malloc_ptr = (char *) MALLOC_BASE;
 
 static char *last_alloc = 0;
 
+static char *align_ptr_to(char *ptr, unsigned long align)
+{
+    return (char *) ((((unsigned long) ptr) + (align - 1UL)) &
+                    ~(align - 1UL));
+}
+
 void *malloc (int size)
 {
     char *caddr;
@@ -34,10 +40,34 @@ void *malloc (int size)
     caddr = malloc_ptr;
     malloc_ptr += size;
     last_alloc = caddr;
-    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7) & (~7));
+    malloc_ptr = align_ptr_to(malloc_ptr, 8UL);
     return caddr;
 }
 
+int posix_memalign(void **memptr, unsigned long alignment, unsigned
long size)
+{
+    char *caddr;
+
+    if (alignment & (alignment - 1UL))
+        return -1;
+    if (alignment & (sizeof(void *) - 1UL))
+        return -1;
+
+    if (size = 0) {
+      *memptr = (void *) 0;
+      return 0;
+    }
+
+    caddr = align_ptr_to(malloc_ptr, alignment);
+    malloc_ptr = (caddr + size);
+    last_alloc = caddr;
+    malloc_ptr = align_ptr_to(malloc_ptr, 8UL);
+
+    *memptr = caddr;
+
+    return 0;
+}
+
 void free (void *m)
 {
     if (m = last_alloc)

-- 
Tactical Nuclear Kittens

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (9 preceding siblings ...)
  2011-01-17 17:35 ` Alex Buell
@ 2011-01-17 21:12 ` David Miller
  2011-01-17 21:14 ` David Miller
  11 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2011-01-17 21:12 UTC (permalink / raw)
  To: sparclinux

From: Alex Buell <alex.buell@munted.org.uk>
Date: Mon, 17 Jan 2011 17:35:27 +0000

> On Mon, 2011-01-17 at 17:23 +0000, Alex Buell wrote:
>> On Mon, 2011-01-17 at 17:02 +0000, Richard Mortimer wrote:
>> 
>> > >> -    malloc_ptr = (char *) ((((unsigned long) malloc_ptr) + 7)&
>> (~7));
>> > >> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
>> > I think that should be 8UL because align_ptr_to does -1 to make it
>> 7.
>> 
>> > >> +    malloc_ptr = align_ptr_to(malloc_ptr, 7UL);
>> > Ditto
>> 
>> That would explain the different error, this time it was 256, the
>> previous error was -1^32. 
>> 
>> I'll change the patch with the new values and see if that works. 
> 
> Well done, that fixed the problem. Thank you. For anyone who's
> interested, here's the patch in full with Richard Mortimer's changes:

Thanks a lot, sorry for the stupid thinko :-)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: silo fails to build with e2fsprogs-1.41.14 (undefined
  2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
                   ` (10 preceding siblings ...)
  2011-01-17 21:12 ` David Miller
@ 2011-01-17 21:14 ` David Miller
  11 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2011-01-17 21:14 UTC (permalink / raw)
  To: sparclinux

From: Alex Buell <alex.buell@munted.org.uk>
Date: Mon, 17 Jan 2011 17:35:27 +0000

> Well done, that fixed the problem. Thank you. For anyone who's
> interested, here's the patch in full with Richard Mortimer's changes:

The final working version is pushed to the silo GIT repo, please
double check that it works fine there too.

Thanks!

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2011-01-17 21:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-10 19:10 silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
2011-01-10 19:29 ` silo fails to build with e2fsprogs-1.41.14 (undefined David Miller
2011-01-15 12:07 ` silo fails to build with e2fsprogs-1.41.14 (undefined references Raúl Porcel
2011-01-15 12:57 ` silo fails to build with e2fsprogs-1.41.14 (undefined Alex Buell
2011-01-16  5:06 ` David Miller
2011-01-17  3:59 ` David Miller
2011-01-17  4:03 ` Alex Buell
2011-01-17 13:22 ` Alex Buell
2011-01-17 17:02 ` silo fails to build with e2fsprogs-1.41.14 (undefined references Richard Mortimer
2011-01-17 17:23 ` silo fails to build with e2fsprogs-1.41.14 (undefined Alex Buell
2011-01-17 17:35 ` Alex Buell
2011-01-17 21:12 ` David Miller
2011-01-17 21:14 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.