[Ace-users] [ace-users] ACE_OFF_T / off_t related problems, etc.

Johnny Willemsen jwillemsen at remedy.nl
Wed Nov 14 07:17:51 CST 2007


To ensure that we have proper version/platform/compiler information,
please make sure you fill out the appropriate problem report form
(PRF), which is in


or in


in older versions of ACE+TAO.  Make sure to include this information
when asking any questions about ACE+TAO since otherwise we have to
"guess" what version/platform/compiler/options you've using, which is
very error-prone and slows down our responsiveness.  If you don't use
the PRF, therefore, it is less likely that someone from the core
ACE+TAO developer team will be able to answer your question.
Naturally, we encourage and appreciate other members of the ACE+TAO
user community who can respond to questions that they have the answers

Johnny Willemsen
Remedy IT
Postbus 101
2650 AC  Berkel en Rodenrijs
The Netherlands
www.theaceorb.nl / www.remedy.nl  

*** Integrated compile and test statistics see
http://scoreboard.theaceorb.nl ***
*** Commercial service and support for ACE/TAO/CIAO             ***
*** See http://www.theaceorb.nl/en/support.html                 ***

"Martin Scholl" <ms at globalinfinity.de> wrote in message
news:<mailman.2849.1195044155.5286.ace-users at mail.cse.wustl.edu>...
Hello all,

I have stumbled upon a subtile problem under linux 32bit that was coming
from different definitions of off_t. I am writing this email to know how
if the following is a know problem, and how you typically solve it.

At compilation time (and as long as you do not change anything by hand)
ACE's off_t is defined as an 32bit integer when using 32bit linux (UNIX
also?) platforms.
But when you compile a program that uses ace you can switch the
definition of off_t by a set of preprocessor definitions; that is off_t
becomes an 64bit(!) integer.

Yet as you know ACE_OFF_T is a `typedef off_t ACE_OFF_T'. The result is
that linking fails for ace using programs configured for using large
files. Why? The names of symbols with ACE_OFF_T as a parameter will not
get resolved anymore. ACE_OFF_T has changed from 32bit to 64bit so the
functions' definitions are not equal anymore.

So, have you ever stumbled upon such a problem? Do you think (linux)
distributions shipping ACE should mind? Is it worth to solve it (and
e.g. change the definition of ACE_OFF_T so something like
	typedef uint64_t ACE_OFF_T


global infinity GmbH                   | Tel.: 06421/983004-20        |
Geschaeftsfuehrer: Marcus Brindoepke
Scheppe Gewissegasse 8         | Fax: 06421/983004-90	| Amtsgericht
Marburg, HRB 5200
35039 Marburg                          | Funk: 0176/61190045	| Web:


More information about the Ace-users mailing list