Menu

#31 obexftp is not 64 bit clean

closed-accepted
None
5
2007-06-02
2005-08-04
No

I tested obexftp with my amd64 laptop. It used to work
when the kernel was 32 bit. Now I'm 64 bit and does not
seem to work anymore. Compilation raise some warning,
about size of variables

Discussion

  • Christian W. Zuckschwerdt

    Logged In: YES
    user_id=136432

    Please provide more info about the compile warnings.

     
  • Christian W. Zuckschwerdt

    • assigned_to: nobody --> zany
    • status: open --> open-accepted
     
  • Tupone Alfredo

    Tupone Alfredo - 2005-08-10

    Logged In: YES
    user_id=76397

    Attaching the output of build

     
  • Tupone Alfredo

    Tupone Alfredo - 2005-08-10

    configure and make output

     
  • Hendrik Sattler

    Hendrik Sattler - 2006-01-11

    Logged In: YES
    user_id=356160

    All warnings in his output are non-critical, so this could
    also be an openobex problem. Maybe he did not recompile
    the lib for 64bit?

    HS

     
  • Tupone Alfredo

    Tupone Alfredo - 2006-01-11

    Logged In: YES
    user_id=76397

    Just an example:
    client.c:215: warning: cast to pointer from integer of
    different size

    I can be wrong, but that appears a normal sizeof(pointer) ==
    sizeof(int) assumption, that is uncorrect on 64 bit
    architecture.

    My distribution is gentoo, source based, and it use to
    compile on my machine any single LOC. Well, could be that
    openobex have used the -m32 compiler option, but I don't
    believe.

     
  • Hendrik Sattler

    Hendrik Sattler - 2006-01-11

    Logged In: YES
    user_id=356160

    integer is always smaller or the same size as a pointer.
    In you case, the pointer has 64bit and the integer 32bit.
    So there's nothing wrong.

     
  • Tupone Alfredo

    Tupone Alfredo - 2006-01-11

    Logged In: YES
    user_id=76397

    I can be wrong again, as I'm not looking at the code now,
    but there is another conversion that gives a warning, where
    a pointer is written to (save as) an integer.

    And probably this is written back to a pointer at the line
    of code I highlighted.

    So a pointer -> int -> pointer is what loose the higher 32 bits.

     
  • Christian W. Zuckschwerdt

    Logged In: YES
    user_id=136432

    lacking a x64 platform I performed a through search. I found
    one instance of "strlen(int)". That's a silly typo, it's
    fixed in beta5. If the warnings persist, please post the
    exact line no.

     
  • Christian W. Zuckschwerdt

    • status: open-accepted --> closed-accepted
     

Log in to post a comment.