Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 09-22-2012, 11:40 AM   #691
Kozzi
Enthusiast
Kozzi began at the beginning.
 
Posts: 28
Karma: 10
Join Date: Sep 2011
Device: Kindle 3, Kobo Aura H2O
Hi,

After looking at introductions on how to install and use with launchpad or kite, I couldn't find any information whether this PDF reader supports Kindle Kb 3.4. It reads in the first post that jailbreaked kindles, but is jailbreaking needed for the launchpad only? since kite doesn't seem to require it. I have Duokan installed to dunno how jailbreaking might affect it. Please post screenshots of the reader in action.


tl;dr would it work if I use PDF reader + Kite on not-jailbroken kindle 3.4 (which has Duokan installed) ?
Kozzi is offline   Reply With Quote
Old 09-22-2012, 01:41 PM   #692
tigran
Zealot
tigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austentigran has memorized the entire works of Homer, Shakespeare, and Jane Austen
 
Posts: 140
Karma: 23528
Join Date: Nov 2009
Location: London
Device: Kobo Aura One,HD,H2O,Touch,Mini,Kindle 3+DXG,Nook Simple Touch
Kozzi
jailbreak+launchpad work absolutely fine on Kindle Keyboard with firmware 3.4
tigran is offline   Reply With Quote
Old 09-22-2012, 04:16 PM   #693
Kai771
Just a Noob
Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.
 
Kai771's Avatar
 
Posts: 145
Karma: 162610
Join Date: Aug 2011
Device: Kindle 3
I finally managed to compile kpdfview that would work on kindle using CS/MG 2012.03-57 toolchain. I was going to write a lengthy post listing all the things that I tried (and failed), but in the end I decided not to waste everyone's time. Instead, I'll just give final working solution.

1. copy stdio.h from 2007q3 over 2012.03's stdio.h in /opt/arm-2012.03/arm-none-linux-gnueabi/libc/usr/include. (You can probably use stdio.h from kindle source, but I didn't try this. If you use header from kindle source, it might need to be adapted https://github.com/hwhw/kindlepdfviewer/issues/103)

2. copy /usr/lib/libstdc++.so.6.0.8 from your kindle to your pc. Rename it to libstdc++.so.6.0.16 and copy it over existing file in /opt/arm-2012.03/arm-none-linux-gnueabi/libc/usr/lib/. (You can probably copy it without renaming, but then you'd have to delete libstdc++.so.6 and libstdc++.so and remake them to link to libstdc++.so.6.0.8. I find renaming easier).

And that's it. KindlePDFViewer will now compile with 2012.03-57, and this time, it WILL work on Kindle. I suppose this will work on other versions too (from 2008q3-41 to 2011.09-70) but I didn't try it.

Oh, I forgot to mention: you don't need to use STATICLIBSTDCPP when compiling. It will link dynamically.

Update: As NiLuJe pointed out bellow, this is an ugly hack. Do not use it. Use this instead.

Last edited by Kai771; 09-25-2012 at 01:50 AM.
Kai771 is offline   Reply With Quote
Old 09-22-2012, 06:04 PM   #694
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@Kai771: That's... not pretty. At all. And will possibly blow up in fun & interesting ways at runtime.

You didn't answer my previous questions, (checking the full readelf output), but I'm assuming it's as simple as not having the correct *FLAGS in your env (I forgot to mention it explicitly, because I *always* have that stuff in my env) and one of the third party libs ended up using non tweaked CFLAGS, thus pulling stack-smashing/fortify/cxa_atexit stuff.
NiLuJe is offline   Reply With Quote
Old 09-22-2012, 06:44 PM   #695
Kai771
Just a Noob
Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.
 
Kai771's Avatar
 
Posts: 145
Karma: 162610
Join Date: Aug 2011
Device: Kindle 3
Quote:
Originally Posted by NiLuJe View Post
@Kai771: That's... not pretty. At all. And will possibly blow up in fun & interesting ways at runtime.
Well, yeah, it kind of felt like cheating... I didn't run extensive testing, but I did open a few books, turned pages etc and it all appeared to be ok. Sorry about not answering your questions (I didn't realize they were questions - I thought it was a homework for me ). I did run readelf -a. Only thing of interest are these lines, I think:

Code:
    16: 0000ac84     0 FUNC    GLOBAL DEFAULT  UND __aeabi_atexit@CXXABI_ARM_1.3.3 (6)
   117: 0000b134     0 FUNC    GLOBAL DEFAULT  UND __isoc99_sscanf@GLIBC_2.7 (10)
   224: 0000b5d8     0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (10)
I searched for strings __isoc99_sscanf and __isoc99_fscanf and found them in stdio.h. I compared that with stdio.h of 2007q3, and found out that they weren't present there. That's when I replaced stdio.h and that got rid of those 2 bottom lines.

Getting rid of the first one (CXXABI_ARM_1.3.3) was much harder. I googled, read numerous pages, but nothing seemed to work. Finally, I tried to link statically libstdc++ and it did work on kindle. But, I wanted it linked dynamically, so I replaced the lib using the one from my kindle in the end. It worked.

About FLAGS - I don't have them in my env. Actually, I have no idea what I should have there. I use just a basic Ubuntu install, just like described in my guide. Not sure what you are reffering to with "one of the third party libs ended up using non tweaked CFLAGS, thus pulling stack-smashing/fortify/cxa_atexit stuff."

I don't want to bother you too much, but if you're willing to teach, I'm willing to learn . I appreciate any suggestions you might have.

Last edited by Kai771; 09-22-2012 at 07:04 PM.
Kai771 is offline   Reply With Quote
Old 09-22-2012, 09:19 PM   #696
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@Kai771:

The isoc99 stuff should be gone with a GNU_SOURCE define (usually adding -D_GNU_SOURCE to CPPFLAGS is enough, although some crappy buildsystems may not honor CPPFLAGS, so, to the CFLAGS soup if it's not enough), or a tweak of the -std CFLAG, although it's been a while since I've run into those with my TC, so I may be a bit rusty (and I'd go with defining GNU_SOURCE over tweaking the standard).

The __aeabi_atexit was why I'm putting -fno-use-cxa-atexit in CXXFLAGS in the Makekfile (although it may have some ties to how my TC is built) .

Basically, look at the KINDLE_TC case switch near the top fn my x-compile script, after the TC setup, that's where I setup the env. (Granted, I'm a Gentoo user, so I'm used to setting this up in profiles & co).

A big dumb recursive grep on the whole tree should light up the object files pulling the troublesome symbols, that may help pinpoint which buildsystem was naughty.

And, since we're talking about TC, for those of us using GCC 4.7.2 or Linaro GCC 4.6/4.7:

Code:
## NOTE: See http://gcc.gnu.org/gcc-4.7/changes.html & http://comments.gmane.org/gmane.linux.linaro.devel/12115 & http://comments.gmane.org/gmane.linux.ports.arm.kernel/117863
## But, basically, if you want to build a Kernel, backport https://github.com/mirrors/linux/commit/8428e84d42179c2a00f5f6450866e70d802d1d05 [it's not in FW 2.5.8/3.4/4.1.0/5.1.2],
## or build your Kernel with -mno-unaligned-access
## You might also want to backport https://github.com/mirrors/linux/commit/088c01f1e39dbe93a13e0b00f4532ed8b79d35f4 if you intend to roll your own Kernel.
## For those interested, basically, if your kernel has this: https://github.com/mirrors/linux/commit/baa745a3378046ca1c5477495df6ccbec7690428 then you're safe in userland.
## (That's the commit merged in 2.6.28 that the GCC docs refer to).
## It's in FW 3.x/4.x/5.x, so we're good on *some* Kindles. However, it's *NOT* in FW 2.x, and the trap handler defaults to ignoring unaligned access faults.
## I haven't seen any *actual* issues yet, but the counter does increment...
## So, to be on the safe side, let's use -mno-unaligned-access on the K3 TC, to avoid going kablooey in weird & interesting ways on FW 2.x... ;)
ARM_NO_UNALIGNED_ACCESS="-mno-unaligned-access"
Basically: If you intend to build a Kernel, backport the commit mentioned earlier or build it with -mno-unaligned-access (there shouldn't be any issues in userland, it's properly set up by the kernel later on >= ARMv6 (cf. arch/arm/mm/alignment.c)).

Also, if you target something running on FW 2.x, use -mno-unaligned-access for userland stuff too, it might not be safe in every cases otherwise.

Last edited by NiLuJe; 09-23-2012 at 04:45 PM. Reason: Ammended (again) my whole unaligned access investigation, always better to double check things in the morning ;)
NiLuJe is offline   Reply With Quote
Old 09-24-2012, 07:14 PM   #697
Kai771
Just a Noob
Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.
 
Kai771's Avatar
 
Posts: 145
Karma: 162610
Join Date: Aug 2011
Device: Kindle 3
@NiLuJe

I managed to compile and run kpdfview on kindle using CS/MG 2012.03-57 toolchain - this time properly (I think) without ugly hacks . This time I'll include a lengthy account of what I did - hopefully it will provide some entertainment . As a courtesy to those who're not interested in intricacies of make process, I'm putting it between spoiler tags.

Summary - the default Makefile is broken (in my opinion) and doesn't pass parameters to sub-makes properly. I attached fixed Makefile.

Spoiler:

It seems that KindlePDFViewer is one of those that don't honour CPPFLAGS - There's no mention of CPPFLAGS in Makefile, so I added -D_GNU_SOURCE to CFLAGs:

Code:
-CFLAGS:=-O3 $(SYSROOT)
+CFLAGS:=-O3 -D_GNU_SOURCE $(SYSROOT)
That seemed to help only partially - before, I had:

Code:
   117: 0000b134     0 FUNC    GLOBAL DEFAULT  UND __isoc99_sscanf@GLIBC_2.7 (10)
   224: 0000b5d8     0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (10)
and now I have:
Code:
   223: 0000b5a4     0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (11)
I also tried -std=gnu90 instead of -D_GNU_SOURCE, but it didn't help at all:
Code:
   117: 0000b134     0 FUNC    GLOBAL DEFAULT  UND __isoc99_sscanf@GLIBC_2.7 (10)
   224: 0000b5d8     0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (10)
-std=gnu99 was the same.

grep -r "isoc99" returns nothing, while grep -r "sscanf" . and grep -r "fscanf" . return quite a bit (which I believe was to be expected).


On another note, I tried adding -fno-use-cxa-atexit to CXXFLAGS in Makefile, but it seemed it had no effect:

Code:
Version needs section '.gnu.version_r' contains 6 entries:
 Addr: 0x000000000000a334  Offset: 0x002334  Link: 5 (.dynstr)
  000000: Version: 1  File: libgcc_s.so.1  Cnt: 2
  0x0010:   Name: GCC_3.0  Flags: none  Version: 11
  0x0020:   Name: GCC_3.5  Flags: none  Version: 8
  0x0030: Version: 1  File: libdl.so.2  Cnt: 1
  0x0040:   Name: GLIBC_2.4  Flags: none  Version: 7
  0x0050: Version: 1  File: libstdc++.so.6  Cnt: 3
  0x0060:   Name: CXXABI_1.3  Flags: none  Version: 9
  0x0070:   Name: CXXABI_ARM_1.3.3  Flags: none  Version: 6
  0x0080:   Name: GLIBCXX_3.4  Flags: none  Version: 5
  0x0090: Version: 1  File: libc.so.6  Cnt: 2
  0x00a0:   Name: GLIBC_2.7  Flags: none  Version: 10
  0x00b0:   Name: GLIBC_2.4  Flags: none  Version: 4
  0x00c0: Version: 1  File: libpthread.so.0  Cnt: 1
  0x00d0:   Name: GLIBC_2.4  Flags: none  Version: 3
  0x00e0: Version: 1  File: libm.so.6  Cnt: 1
  0x00f0:   Name: GLIBC_2.4  Flags: none  Version: 2

    16: 0000ac84     0 FUNC    GLOBAL DEFAULT  UND __aeabi_atexit@CXXABI_ARM_1.3.3 (6)
grep -r "atexit" . returns:
Code:
./mupdf/fitz/memento.c://int atexit(void (*)(void));
./mupdf/fitz/memento.c:    atexit(Memento_fin);
./mupdf/fitz/memento.c:     * just exit to avoid the JIT (and get the usual atexit handling). */
./mupdf/thirdparty/jbig2dec/memento.c:int atexit(void (*)(void));
./mupdf/thirdparty/jbig2dec/memento.c:    atexit(Memento_fin);
./mupdf/thirdparty/jbig2dec/memento.c:     * just exit to avoid the JIT (and get the usual atexit handling). */

I once again tried compiling it with your Makefile (keeping only HOST:=arm-none-linux-gnueabi unchanged. As far as I can see, all env settings that you use in x-compile.sh are also stated explicitly in the Makefile, so it should work without me fiddling with my env. Or so I thought. I got this:

Code:
Version needs section '.gnu.version_r' contains 6 entries:
 Addr: 0x000000000000a8fc  Offset: 0x0028fc  Link: 5 (.dynstr)
  000000: Version: 1  File: libgcc_s.so.1  Cnt: 2
  0x0010:   Name: GCC_3.0  Flags: none  Version: 12
  0x0020:   Name: GCC_3.5  Flags: none  Version: 9
  0x0030: Version: 1  File: libdl.so.2  Cnt: 1
  0x0040:   Name: GLIBC_2.4  Flags: none  Version: 8
  0x0050: Version: 1  File: libstdc++.so.6  Cnt: 3
  0x0060:   Name: CXXABI_1.3  Flags: none  Version: 10
  0x0070:   Name: CXXABI_ARM_1.3.3  Flags: none  Version: 7
  0x0080:   Name: GLIBCXX_3.4  Flags: none  Version: 5
  0x0090: Version: 1  File: libc.so.6  Cnt: 2
  0x00a0:   Name: GLIBC_2.7  Flags: none  Version: 11
  0x00b0:   Name: GLIBC_2.4  Flags: none  Version: 4
  0x00c0: Version: 1  File: libpthread.so.0  Cnt: 1
  0x00d0:   Name: GLIBC_2.4  Flags: none  Version: 3
  0x00e0: Version: 1  File: libm.so.6  Cnt: 2
  0x00f0:   Name: GLIBC_2.15  Flags: none  Version: 6
  0x0100:   Name: GLIBC_2.4  Flags: none  Version: 2
But, just to be sure, I did this:

Code:
export ARCH_FLAGS="-march=armv6j -mtune=arm1136jf-s -mfpu=vfp"
export NOLTO_CFLAGS="-O2 -ffast-math ${ARCH_FLAGS} -pipe -fomit-frame-pointer -fno-stack-protector -U_FORTIFY_SOURCE"
export BASE_CFLAGS="${NOLTO_CFLAGS}"
export CFLAGS="${BASE_CFLAGS}"
export CXXFLAGS="${BASE_CFLAGS}"
export BASE_LDFLAGS="-Wl,-O1 -Wl,--as-needed"
export LDFLAGS="${BASE_LDFLAGS}"
and then got this!
Code:
Version needs section '.gnu.version_r' contains 6 entries:
 Addr: 0x000000000000a8ec  Offset: 0x0028ec  Link: 5 (.dynstr)
  000000: Version: 1  File: libgcc_s.so.1  Cnt: 2
  0x0010:   Name: GCC_3.0  Flags: none  Version: 11
  0x0020:   Name: GCC_3.5  Flags: none  Version: 8
  0x0030: Version: 1  File: libdl.so.2  Cnt: 1
  0x0040:   Name: GLIBC_2.4  Flags: none  Version: 7
  0x0050: Version: 1  File: libstdc++.so.6  Cnt: 2
  0x0060:   Name: CXXABI_1.3  Flags: none  Version: 9
  0x0070:   Name: GLIBCXX_3.4  Flags: none  Version: 5
  0x0080: Version: 1  File: libc.so.6  Cnt: 2
  0x0090:   Name: GLIBC_2.7  Flags: none  Version: 10
  0x00a0:   Name: GLIBC_2.4  Flags: none  Version: 4
  0x00b0: Version: 1  File: libpthread.so.0  Cnt: 1
  0x00c0:   Name: GLIBC_2.4  Flags: none  Version: 3
  0x00d0: Version: 1  File: libm.so.6  Cnt: 2
  0x00e0:   Name: GLIBC_2.15  Flags: none  Version: 6
  0x00f0:   Name: GLIBC_2.4  Flags: none  Version: 2
Further experiments revealed that to get rid of CXXABI_ARM_1.3.3, you need to have both -fno-use-cxa-atexit added to CXXFLAGS in Makefile AND env CXXFLAGS defined. Even export CXXFLAGS= will work. I added -D_GNU_SOURCE to CFLAGS in Makefile, and that got rid of GLIBC_2.7. I don't know what caused that GLIBC_2.15. It didn't come up with my Makefiles.


Combining the two approaches, I reverted to default Makefile and changed it like this:
Code:
-CFLAGS:=-O3 $(SYSROOT)
-CXXFLAGS:=-O3 $(SYSROOT)
+CFLAGS:=-O3 -D_GNU_SOURCE $(SYSROOT)
+CXXFLAGS:=-O3 -fno-use-cxa-atexit $(SYSROOT)
with env CXXFLAGS set to "-O3 -D_GNU_SOURCE", and CPPFLAGS, CFLAGS not defined, I got this:
Code:
Version needs section '.gnu.version_r' contains 6 entries:
 Addr: 0x000000000000a304  Offset: 0x002304  Link: 5 (.dynstr)
  000000: Version: 1  File: libgcc_s.so.1  Cnt: 2
  0x0010:   Name: GCC_3.0  Flags: none  Version: 9
  0x0020:   Name: GCC_3.5  Flags: none  Version: 7
  0x0030: Version: 1  File: libdl.so.2  Cnt: 1
  0x0040:   Name: GLIBC_2.4  Flags: none  Version: 6
  0x0050: Version: 1  File: libstdc++.so.6  Cnt: 2
  0x0060:   Name: CXXABI_1.3  Flags: none  Version: 8
  0x0070:   Name: GLIBCXX_3.4  Flags: none  Version: 5
  0x0080: Version: 1  File: libc.so.6  Cnt: 2
  0x0090:   Name: GLIBC_2.7  Flags: none  Version: 10
  0x00a0:   Name: GLIBC_2.4  Flags: none  Version: 4
  0x00b0: Version: 1  File: libpthread.so.0  Cnt: 1
  0x00c0:   Name: GLIBC_2.4  Flags: none  Version: 3
  0x00d0: Version: 1  File: libm.so.6  Cnt: 1
  0x00e0:   Name: GLIBC_2.4  Flags: none  Version: 2

   223: 0000b584     0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (10)
As you can see, we still have a problem with that GLIBC_2.7. I thought maybe similar approach to above would work, so I typed export CFLAGS=. This gave:

Code:
kai771@Ubuntu-12:~/kindlepdfviewer$ make thirdparty
make -C mupdf CC="gcc" build/debug/cmapdump
make[1]: Entering directory `/home/kai771/kindlepdfviewer/mupdf'
    MKDIR build/debug
    CC build/debug/cmapdump.o
scripts/cmapdump.c:1:0: error: bad value (armv6) for -march= switch
make[1]: *** [build/debug/cmapdump.o] Error 1
make[1]: Leaving directory `/home/kai771/kindlepdfviewer/mupdf'
make: *** [mupdf/cmapdump.host] Error 2
It took me quite some time (and reading man make ) to realise why this happened. Having env variable defined, causes make to export it to sub-makes. And it exported wrong value (the one with -march flag).
It also explains why defining env CXXFLAGS worked above.

Realizing this, I concluded that default Makefile was broken - it didn't pass CFLAGS and CXXFLAGS properly.
I made following changes to Makefile:

Code:
-CFLAGS:=-O3 $(SYSROOT)
-CXXFLAGS:=-O3 $(SYSROOT)
+CFLAGS:=-O3 -D_GNU_SOURCE $(SYSROOT)
+CXXFLAGS:=-O3 -fno-use-cxa-atexit $(SYSROOT)
 
# use this for debugging:
#CFLAGS:=-O0 -g
+BASE_CFLAGS:= $(CFLAGS)

 $(MUPDFDIR)/fontdump.host:
-	make -C mupdf CC="$(HOSTCC)" $(MUPDFTARGET)/fontdump
+	CFLAGS="$(BASE_CFLAGS)" make -C mupdf CC="$(HOSTCC)" $(MUPDFTARGET)/fontdump
 	cp -a $(MUPDFLIBDIR)/fontdump $(MUPDFDIR)/fontdump.host
 	make -C mupdf clean
 
 $(MUPDFDIR)/cmapdump.host:
-	make -C mupdf CC="$(HOSTCC)" $(MUPDFTARGET)/cmapdump
+	CFLAGS="$(BASE_CFLAGS)" make -C mupdf CC="$(HOSTCC)" $(MUPDFTARGET)/cmapdump
 	cp -a $(MUPDFLIBDIR)/cmapdump $(MUPDFDIR)/cmapdump.host
 	make -C mupdf clean
 
 else
-	cd $(DJVUDIR)/build && ../configure --disable-desktopfiles --disable-shared --enable-static --host=$(HOST) --disable-xmltools --disable-desktopfiles
+	cd $(DJVUDIR)/build && CXXFLAGS="$(CXXFLAGS)" ../configure --disable-desktopfiles --disable-shared --enable-static --host=$(HOST) --disable-xmltools --disable-desktopfiles
 endif
 	make -C $(DJVUDIR)/build
 
 $(CRENGINELIBS):
 	cd $(KPVCRLIGDIR) && rm -rf CMakeCache.txt CMakeFiles && \
-		CFLAGS="$(CFLAGS)" CC="$(CC)" CXX="$(CXX)" cmake . && \
+		CFLAGS="$(CFLAGS)" CC="$(CC)" CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" cmake . && \
 		make
 
 else
-	make -C $(LUADIR) CC="$(HOSTCC)" HOST_CC="$(HOSTCC) -m32" CROSS="$(HOST)-" TARGET_FLAGS="$(SYSROOT) -DLUAJIT_NO_LOG2 -DLUAJIT_NO_EXP2"
+	CFLAGS="$(BASE_CFLAGS)" make -C $(LUADIR) CC="$(HOSTCC)" HOST_CC="$(HOSTCC) -m32" CROSS="$(HOST)-" TARGET_FLAGS="$(SYSROOT) -DLUAJIT_NO_LOG2 -DLUAJIT_NO_EXP2"
 endif
and now everything works properly. So, you were right from the beginning - it just took some time to sink in !. Only two flags are necessary: -D_GNU_SOURCE in CFLAGS and -fno-use-cxa-atexit to CXXFLAGS. I tested this Makefile with 2007q3 also, both arm and emu - it doesn't impede the building process at all, so I suggest making them default. The rest of your flags don't seem necessary, but as you said it, they might come up in some rare cases. I'm attaching a fixed Makefile.

Thanks a lot for all of your help. I really learned a lot.

Attached Files
File Type: zip Makefile.fixed.zip (3.0 KB, 189 views)

Last edited by Kai771; 09-25-2012 at 02:01 PM. Reason: Sorry, had a typo in attached Makefile. Fixed now
Kai771 is offline   Reply With Quote
Old 09-24-2012, 07:23 PM   #698
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@Kai771: Yep, I was relying on the third-party stuff obeying my env more than forcing everything in the Makefile (because I always have my env set, and also to keep the Makefile tweaks to the minimum), but you got the idea, and discovered how fun it can be to track down... ^^. (It also stems from the fact that I'm a Gentoo user, and following the 'Gentoo way', I'm more inclined to fix buildsystems to honor the env rather than to 'fix' a buildsystem by forcing more stuff down its throat ).

There's also the added fun that mupdf builds the two *dump binaries for your host, not your target, so you can't have ARM stuff passed to your host's x86/x86_64 compiler, hence the whole double defines in my diff, once with -march & co, once without .

This may not concern the TC you used, but GCC's stack-smashing protection handling & glibc's fortify support may also be things to keep in mind . Everything depends on the TC you use (for exemple, while I do need to kill ssp & fortify, I don't have to define GNU_SOURCE on my setup).

That said, between the two of us, we've covered most of what one might encounter when trying this kind of stuff .

(The glibc_2.15 stuff is interesting, though... my best guess would be the CS/MG TC handling fortify/ssp in a weird, or at least different way than I'm used to, since it seems to be disabled by default, and actually passing those flags/defines made things worse...). Or, possibly more likely, since the 2.15 stuff was pulled by libm, that's it's defaulting to the 'old' soft (not softfp) float ABI, and asking for the vfp fpu with these settings pulled some extra soft fp stuff from libm...

Last edited by NiLuJe; 09-24-2012 at 07:43 PM.
NiLuJe is offline   Reply With Quote
Old 09-25-2012, 03:21 PM   #699
Kai771
Just a Noob
Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.
 
Kai771's Avatar
 
Posts: 145
Karma: 162610
Join Date: Aug 2011
Device: Kindle 3
I tried compiling with Linaro that comes with Ubuntu 12.04 again (sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi). I used Makefile from my previous post. Readelf showed problems with GLIBC_2.11 and GLIBC_2.15. I added -fno-stack-protector and -U_FORTIFY_SOURCE to both CFLAGS and CXXFLAGS. This time readelf was happy, but it didn't work on the kindle - Segmentation fault. Any ideas?

Oh, and Linaro doesn't need -D_GNU_SOURCE either. It doesn't hurt though.

Last edited by Kai771; 09-25-2012 at 03:32 PM.
Kai771 is offline   Reply With Quote
Old 09-25-2012, 03:25 PM   #700
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
ops:

Last edited by knc1; 09-25-2012 at 03:44 PM.
knc1 is offline   Reply With Quote
Old 09-25-2012, 04:25 PM   #701
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@Kai771: I'm not familiar with Ubuntu, but they may have moved to a weird multilib and/or hardfloat toolchain, and/or default to weird settings that blow up on the K3.

(Although, ideally, it should have SIGILL instead of SIGSEGV, but, I've seen some pretty weird behavior with kpdf when built with certain TCs, so, who knows...).

(If you really want to look at the default flags to play spot the difference, look at the output from gcc -Q -v on a minimal C file [like a hello world]).

Last edited by NiLuJe; 09-25-2012 at 04:29 PM.
NiLuJe is offline   Reply With Quote
Old 09-26-2012, 05:00 PM   #702
Kai771
Just a Noob
Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.
 
Kai771's Avatar
 
Posts: 145
Karma: 162610
Join Date: Aug 2011
Device: Kindle 3
Well, I didn't really want to, but my curiosity got the better of me, and I tried gcc -Q -v hello.c approach. for CS/MG 2012.3 i got this (unimportant parts omitted):
Code:
gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-57) 
COLLECT_GCC_OPTIONS='-Q' '-v' '-march=armv5te' '-mtls-dialect=gnu' '-funwind-tables' '-D' '__CS_SOURCERYGXX_MAJ__=2012' '-D' 

options passed:  -v
 -iprefix /opt/arm-2012.03/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.3/
 -isysroot /opt/arm-2012.03/bin/../arm-none-linux-gnueabi/libc
 -D __CS_SOURCERYGXX_MAJ__=2012 -D __CS_SOURCERYGXX_MIN__=3
 -D __CS_SOURCERYGXX_REV__=57 hello.c -march=armv5te -mtls-dialect=gnu
 -funwind-tables
options enabled:  -fauto-inc-dec -fbranch-count-reg -fcommon
 -fdelete-null-pointer-checks -fdwarf2-cfi-asm -fearly-inlining
 -feliminate-unused-debug-types -ffunction-cse -fgcse-lm -fident
 -finline-functions-called-once -fira-share-save-slots
 -fira-share-spill-slots -fivopts -fkeep-static-consts -fleading-underscore
 -fmath-errno -fmerge-debug-strings -fmove-loop-invariants -fpeephole
 -fprefetch-loop-arrays -freg-struct-return -fsched-critical-path-heuristic
 -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
 -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
 -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fshow-column
 -fsigned-zeros -fsplit-ivs-in-unroller -fstrict-volatile-bitfields
 -ftrapping-math -ftree-cselim -ftree-forwprop -ftree-loop-if-convert
 -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
 -ftree-parallelize-loops= -ftree-phiprop -ftree-pta -ftree-reassoc
 -ftree-scev-cprop -ftree-slp-vectorize -ftree-vect-loop-version
 -funit-at-a-time -funwind-tables -fvar-tracking -fvar-tracking-assignments
 -fzero-initialized-in-bss -mglibc -mlittle-endian -msched-prolog
And for Ubuntu Linaro I got this:
Code:
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
COLLECT_GCC_OPTIONS='-Q' '-v' '-march=armv7-a' '-mfloat-abi=softfp' '-mfpu=vfpv3-d16' '-mthumb'

options passed:  -v -imultilib . -imultiarch arm-linux-gnueabi hello.c
 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb
 -fstack-protector
options enabled:  -fauto-inc-dec -fbranch-count-reg -fcommon
 -fdelete-null-pointer-checks -fdwarf2-cfi-asm -fearly-inlining
 -feliminate-unused-debug-types -ffunction-cse -fgcse-lm -fident
 -finline-functions-called-once -fira-share-save-slots
 -fira-share-spill-slots -fivopts -fkeep-static-consts -fleading-underscore
 -fmath-errno -fmerge-debug-strings -fmove-loop-invariants -fpeephole
 -fprefetch-loop-arrays -freg-struct-return -fsched-critical-path-heuristic
 -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
 -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
 -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fshow-column
 -fsigned-zeros -fsplit-ivs-in-unroller -fstack-protector
 -fstrict-volatile-bitfields -ftrapping-math -ftree-cselim -ftree-forwprop
 -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon
 -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop -ftree-pta
 -ftree-reassoc -ftree-scev-cprop -ftree-slp-vectorize
 -ftree-vect-loop-version -funit-at-a-time -fvar-tracking
 -fvar-tracking-assignments -fzero-initialized-in-bss -mglibc
 -mlittle-endian -msched-prolog -mthumb -munaligned-access
 -mvectorize-with-neon-quad
gcc -print-multi-lib in CS gives this:
Code:
$ arm-none-linux-gnueabi-gcc -print-multi-lib
.;
armv4t;@march=armv4t
thumb2;@mthumb@march=armv7
and in Ubuntu Linaro this:
Code:
$ arm-linux-gnueabi-gcc -print-multi-lib
.;
.;@mfloat-abi=softfp
hf;@mfloat-abi=hard
Thinking it might be more productive, I ran gcc -O3 -D_GNU_SOURCE -march=armv6 -Q -v hello.c on CS, and gcc -O3 -fno-stack-protector -U_FORTIFY_SOURCE -march=armv6 -Q -v hello.c on Ubuntu Linaro, and compared "options enabled" sections of these two outputs. I got this:

-fextension-elimination 1 un
-fpromote-loop-indices 1 un
-frename-registers 1
-fschedule-insns 1
-ftree-if-to-switch-conversion 1 un
-ftree-pre-partial-partial 1 un
-funroll-loops 1
-funwind-tables 1
-fweb 1
-mthumb 2
-mvectorize-with-neon-quad 2

Number 1 on the right signifies that that option appeared in CS output, and not in Ubuntu Linaro. Number 2 signifies that it appeared in Ubuntu Linaro, but not in CS.

I first tried setting ARM_CFLAGS:=-march=armv6 -marm -mfloat-abi=softfp -mfpu=vfp. This gave me Illegal Instruction runtime error. I then tried adding all of the options pressent in CS to CFLAGS and CXXFLAGS. It reported unrecognized command line option for those that have "un" on the right. I removed them and tried again, but I again got Segmentation fault. I also tried setting CFLAGS and CXXFLAGS to -O2 -ffast-math -pipe -fomit-frame-pointer -fno-stack-protector -U_FORTIFY_SOURCE, and ARM_CFLAGS="-march=armv6j -mtune=arm1136jf-s -mfpu=vfp". Segmentation fault again.

If anybody has some ideas, I'd be happy to try them. If not, I'll file it under "Ubuntu quirks" for now, and try it again with Ubuntu 12.10 which should come out soon.

Last edited by Kai771; 09-26-2012 at 07:22 PM.
Kai771 is offline   Reply With Quote
Old 09-26-2012, 05:13 PM   #703
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@Kai771: Ubuntu defaults to -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16, which would be okay if targeting the K4/K5, but is completely wrong for the K3.

My best guess is that something's still not picking up the right *FLAGS along the way, and thus ends up using gcc's defaults => SIGILL/SIGSEGV on the K3 because armv7 > armv6 & vfp3 > vfp.
You can try with the full march/mtune/mfpu/float-abi/marm stuff in your *FLAGS & env, see if it helps.

The fact that you ran CS with O3 & Ubuntu without explains the different optimization related flags (all the ones you flaged only in CS with a 1). The two others are because the Ubuntu TC is more recent & defaults to targeting the Cortex family (mvectorize-with-neon-quad), and defaults to Thumb mode instructions (mthumb).

FWIW, with my ct-ng self-built TC (no args, so default opt level):

Code:
gcc version 4.7.2 20120910 (prerelease) (crosstool-NG hg+default-c79d55b27724) 
COLLECT_GCC_OPTIONS='-Q' '-v' '-march=armv6j' '-mtune=arm1136jf-s' '-mfloat-abi=softfp' '-mfpu=vfp' '-mtls-dialect=gnu'

options passed:  -v /home/niluje/hello.c -march=armv6j -mtune=arm1136jf-s
 -mfloat-abi=softfp -mfpu=vfp -mtls-dialect=gnu
options enabled:  -fauto-inc-dec -fbranch-count-reg -fcommon
 -fdebug-types-section -fdelete-null-pointer-checks -fdwarf2-cfi-asm
 -fearly-inlining -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
 -fgnu-runtime -fident -finline-atomics -fira-share-save-slots
 -fira-share-spill-slots -fivopts -fkeep-static-consts -fleading-underscore
 -fmath-errno -fmerge-debug-strings -fmove-loop-invariants -fpeephole
 -fprefetch-loop-arrays -freg-struct-return -fsched-critical-path-heuristic
 -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
 -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
 -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fshow-column
 -fsigned-zeros -fsplit-ivs-in-unroller -fstrict-volatile-bitfields
 -ftrapping-math -ftree-cselim -ftree-forwprop -ftree-loop-if-convert
 -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
 -ftree-parallelize-loops= -ftree-phiprop -ftree-pta -ftree-reassoc
 -ftree-scev-cprop -ftree-slp-vectorize -ftree-vect-loop-version
 -funit-at-a-time -fvar-tracking -fvar-tracking-assignments
 -fzero-initialized-in-bss -marm -mglibc -mlittle-endian -msched-prolog
 -munaligned-access -mvectorize-with-neon-quad
Basically follows what I've asked of it: defaults to -march=armv6j -mtune=arm1136jf-s -mfloat-abi=softfp -mfpu=vfp -marm

Last edited by NiLuJe; 09-26-2012 at 05:26 PM.
NiLuJe is offline   Reply With Quote
Old 09-26-2012, 07:39 PM   #704
Kai771
Just a Noob
Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.Kai771 can program the VCR without an owner's manual.
 
Kai771's Avatar
 
Posts: 145
Karma: 162610
Join Date: Aug 2011
Device: Kindle 3
Quote:
Originally Posted by NiLuJe View Post
@Kai771: Ubuntu defaults to -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16, which would be okay if targeting the K4/K5, but is completely wrong for the K3.
Yes, I realized that instantly thanks to your great advice about gcc -Q -v. That's why the first thing I tried was setting it all in ARM_CFLAGS, as you can see in my previous post. I did forget to check with setting my env though (I knew I forgot something), but unfortunately, setting env didn't help.

I also went through Makefile, and fixed few more places where *FLAGS weren't passed down, but that didn't help either (I might have missed some of them. I'll check again tomorrow. I'm attaching the most recent Makefile that I used).

Quote:
The fact that you ran CS with O3 & Ubuntu without explains the different optimization related flags (all the ones you flaged only in CS with a 1).
Actually, no. I did use -O3 on both. I made a mistake copying the command line I used. (Fixed in my previous post now too). However, I believe they're just optimization options, and don't have anything to do with Segmentation faults/Illegal instruction. Of course, I could be wrong.

Code:
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
COLLECT_GCC_OPTIONS='-O3' '-fno-stack-protector' '-U' '_FORTIFY_SOURCE' '-march=armv6' '-marm' '-mfpu=vfp' '-Q' '-v' '-mfloat-abi=softfp'
Quote:
The two others are because the Ubuntu TC is more recent & defaults to targeting the Cortex family (mvectorize-with-neon-quad), and defaults to Thumb mode instructions (mthumb).
I wasn't sure if Kindle supports thumb mode (I thought not), so that's why I added -marm. I also thought that -mvectorize-with-neon-quad could be the problem, and tried to turn it off with -mno-vectorize-with-neon-quad, but it didn't work (unrecognized). But, seeing it in your options too means that it's probably not it. (Besides, shouldn't it only be meaningful together with -mfpu=neon?)

I don't know if it's relevant, but my Ubunty Linaro won't accept -mtls-dialect=gnu, and I see it in both yours and CS defaults.
Attached Files
File Type: zip Makefile.Ubuntu-Linaro.zip (3.0 KB, 193 views)

Last edited by Kai771; 09-27-2012 at 05:50 AM. Reason: typo
Kai771 is offline   Reply With Quote
Old 09-26-2012, 08:14 PM   #705
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,477
Karma: 26012492
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@Kai771: Try with -mtune set, if it wasn't already done... It should be overriden by -march, but who knows...

Oh, then it's just different/new optimization flag because of the newer GCC version .

I'm pretty sure Amazon's stuff is using ARM instructions, not thumb. (Thumb1 on the K3 isn't really interesting performance-wise anyway).

Yes, the vectorize stuff is probably only used on armv7-a/neon anyway .

No idea about mtls-dialect, but gnu is the default anyway .
NiLuJe is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
KOReader: a document reader for PDF, DJVU, EPUB, FB2, HTML, ... (GPLv3) hawhill Kindle Developer's Corner 1269 02-27-2024 11:49 AM
Librerator - multi-format e-reader, fork of KPV Kai771 Kindle Developer's Corner 432 10-06-2017 12:20 PM
Yet another PDF viewer (muPDF based) melihron PocketBook 66 09-02-2014 03:03 AM
Text-based PDF to Mobi, etc./Kindle 3 kidblue Calibre 41 07-20-2012 03:19 PM
muPDF on Kindle DX!! DairyKnight Kindle Developer's Corner 8 03-21-2010 03:39 AM


All times are GMT -4. The time now is 09:56 PM.


MobileRead.com is a privately owned, operated and funded community.