Hello, I posted the buildlog I got on AIX... did someone had a look at it to see if there are some warnings or errors that could explain the brokeness of dillo on aix? -Ric
On Sat, 14 Feb 2004, Riccardo wrote:
Hello,
I posted the buildlog I got on AIX... did someone had a look at it to see if there are some warnings or errors that could explain the brokeness of dillo on aix?
Yes I did. The only thing capable of producing an illegal instruction I can think of by reading the gcc compile log is: <q> main.c:298: warning: passing arg 3 of `naccept' from incompatible pointer type bookmarks.c:1824: warning: passing arg 3 of `naccept' from incompatible pointer type downloads.c:176: warning: passing arg 3 of `naccept' from incompatible pointer type </q> The third argument of accept() is of socklen_t * type. If the size of the pointed-to value is smaller than the actual type, memory corruption can happen. If AIX doesn't provide socklen_t, dillo blithely defines it as: <q> IO/http.c: #define socklen_t guint32 ../dpi/downloads.c: #define socklen_t guint32 ../dpid/dpi.h: #define socklen_t guint32 </q> Please try changing these to int. This is: #define socklen_t int The other warnings worth of considering at this point are: <q> ld: 0711-224 WARNING: Duplicate symbol: .strcmp ld: 0711-224 WARNING: Duplicate symbol: strcmp ld: 0711-224 WARNING: Duplicate symbol: .pow ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. </q> Hope this helps Jorge.-
Jorge Arellano Cid wrote:
On Sat, 14 Feb 2004, Riccardo wrote:
Hello,
Hello, sorry if it took so long to trply, but I was very busy :(
If AIX doesn't provide socklen_t, dillo blithely defines it as:
<q> IO/http.c: #define socklen_t guint32 ../dpi/downloads.c: #define socklen_t guint32 ../dpid/dpi.h: #define socklen_t guint32 </q>
Please try changing these to int. This is:
#define socklen_t int I did that right now and recompiled. Only a bunch of files recompiled.
I still get the same SIGILL, illegal instruction.
The other warnings worth of considering at this point are:
<q> ld: 0711-224 WARNING: Duplicate symbol: .strcmp ld: 0711-224 WARNING: Duplicate symbol: strcmp ld: 0711-224 WARNING: Duplicate symbol: .pow ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. </q> I stil have no clue about that. Wasn't here on the list someone with more AIX experience? Could it be that more libraries are included? or that dillo or gtk redefine those symbols?
btw, I found another potential warning: downloads.c: 144: implicit declaration of function 'bzero' I have no entry for bzero in the manpages... but I fear I don't have the full manpages instaleld, sicne some function exists even if they have no manpage. -Ric
On Thu, 4 Mar 2004, Riccardo wrote:
[...] Please try changing these to int. This is:
#define socklen_t int I did that right now and recompiled. Only a bunch of files recompiled.
I still get the same SIGILL, illegal instruction.
Does current CVS produce SIGILL too?
The other warnings worth of considering at this point are:
<q> ld: 0711-224 WARNING: Duplicate symbol: .strcmp ld: 0711-224 WARNING: Duplicate symbol: strcmp ld: 0711-224 WARNING: Duplicate symbol: .pow ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. </q> I stil have no clue about that. Wasn't here on the list someone with more AIX experience?
I don't have any AIX experience, but google searching showed that sometimes the LANG variable has incidence: http://ferret.wrc.noaa.gov/Ferret/FAQ/system/aix_setenv_LANG.html Other than that, I don't know... :( Cheers Jorge.-
On Sat, 14 Feb 2004, Riccardo wrote:
Hello,
I posted the buildlog I got on AIX... did someone had a look at it to see if there are some warnings or errors that could explain the brokeness of dillo on aix?
Of course the right way to fix the socklen_t issue is to have: TYPE_SOCKLEN_T in configure.in, or to define it like this: AC_DEFUN([TYPE_SOCKLEN_T], [AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t, [ AC_TRY_COMPILE( [#include <sys/types.h> #include <sys/socket.h>], [socklen_t len = 42; return 0;], ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no) ]) if test $ac_cv_type_socklen_t != yes; then AC_DEFINE(socklen_t, int) fi ]) I just want to know it it solves the problem before changing the configure script. Cheers Jorge.-
participants (2)
-
Jorge Arellano Cid
-
Riccardo