Quote:
ChrisH wrote:
I guess that a CrashLog might be helpful?
I probably should have but didn't think it'd be useful, since no-one else had the program to use addr2line with.
Quote:
salass00 wrote:
Well according to addr2line the ISI is likely from this line:
image = supported[i].load(src);
Maybe if I add some debug output here I can find out why it crashes...
That was my process too.
Quote:
Problem appears with the linking of the libpng/libjpeg/libtiff libraries. If I put some debug output into IMG_InitJPG() and try to display a JPG image with "showimage" it says that all the libjpeg functions are NULL:
I forgot to check there. I thought that section was only used when dynamic loading was enabled (I spotted the "#endif /* LOAD_JPG_DYNAMIC */" and thought the text above wasn't used).
I had traced it to:
cinfo.err = lib.jpeg_std_error(&jerr.errmgr);
but from looking at your post, the problem isn't there, but due to the functions being NULL. I don't know if I'm experienced enough to figure out why, but I'll have a look. In the meantime, if you can see a fix, please let me know.
Quote:
corto wrote:
MickJT: I a pretty sure you have in your system mixed things like headers for jpeg library v6 with a shared object that could be in v8.
I'm certain that's not the case. I'm very careful about these things, and remove old headers and libraries prior to compiling newer versions. I checked again though, and there's no issue there.
Quote:
That's not always a good idea to upload new versions of critical libraries on os4depot.
They all have different filenames (unless you make a softlink). Unless you overwrite the ones in SObjs: and make a link to .so, there shouldn't be a problem. I do that, but so far I haven't had an issue. I'm not aware of any software that uses the shared objects that come with OS4.1, but I might just be naive about that. Any examples?
Quote:
salass00 wrote:
@corto
The issue that jpeg library API is incompatible between versions isn't really such a big deal because the name of .so file changes with versions that break backwards compatibility (same with libpng and many other shared objects).
I agree with that, and all versions I've uploaded have different file names. There is the issue with OS4Depot wanting just 1 archive per library or program. I could upload to Aminet too in the future, if people want me to do that. I haven't been storing previous versions when just updating my own uploads. They can be built again if needed to.
Quote:
Something I've been thinking about though is that it might be a good idea to have a user archive for libs like this that includes the latest revision of all these incompatible .so files so that you don't end up with programs you can't use because the latest .so file available is a newer incompatible version and the program in question is compiled for an older version and maybe won't be updated for one reason or another.
Unfortunately, the general rule for OS4Depot is that older versions need to be replaced. I'd been hoping that either a program is linked with the version included with OS4.1 (though those sobjs get updated too) or the .so is included with the program.
I'm don't want to feel guilty or blame myself for updating libraries. Do people want me to keep older versions in the same archive, though it would increase the archive size?
Quote:
broadblues qrote:
All available libjpeg.so are named just that. "libjpeg.so" this breaks the concept of linking against numbers libs, because the libs aren't numbered.
The last two I've uploaded have been .so.11 and .so.12. In recent times, since learning how to get the right sonames, I've been careful in making sure that the sonames differ when needed to. The exception so far has been libmp3lame.so.0. On many platforms it's been .so.0 for a long time. I don't know if that's on purpose or not.
I have been editing libtool for deplibs_check_method="pass_all" and version_type=freebsd-elf
Back on topic though, this isn't just about libjpeg, if I disable libjpeg/libtiff and only use libpng, I also get an ISI, but I haven't tried tracing that back any further than IMG_LoadTyped_RW.
FWIW, yesterday I wiped my SDK, reinstalled it. Installed just libjpeg, then booted off of the OS4.1 installation disc, ran the SDK startup script, and compiled SDL_image with the live CD, and it still has the same problem. There's no mismatch of headers.
If I fiddle around with old versions and purposely mismatch, I can get the old SDL_image 1.2.6 .so to work with libjpeg.so.12, but not if I compile 1.2.6 myself.
Edited by MickJT on 2012/9/25 3:29:03
Edited by MickJT on 2012/9/25 3:31:02
Edited by MickJT on 2012/9/25 3:37:01
Edited by MickJT on 2012/9/25 3:42:26
Edited by MickJT on 2012/9/25 3:43:50
Edited by MickJT on 2012/9/25 3:48:51
Edited by MickJT on 2012/9/25 5:35:19
Edited by MickJT on 2012/9/25 5:57:41