issue with _LARGE_FILES and AIX with version 2.11.92, not with 2.4.2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"/usr/include/unistd.h", line 171.17: 1506-343 (S) Redeclaration of lseek64 differs from previous declaration on line 169 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 171.17: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long".
"/usr/include/unistd.h", line 171.17: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".
"/usr/include/sys/lockf.h", line 64.20: 1506-343 (S) Redeclaration of lockf64 differs from previous declaration on line 62 of "/usr/include/sys/lockf.h".
"/usr/include/sys/lockf.h", line 64.20: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long".
"/usr/include/unistd.h", line 800.33: 1506-343 (S) Redeclaration of ftruncate64 differs from previous declaration on line 798 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 800.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".
"/usr/include/unistd.h", line 836.33: 1506-343 (S) Redeclaration of truncate64 differs from previous declaration on line 834 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 836.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".
"/usr/include/unistd.h", line 853.33: 1506-343 (S) Redeclaration of pread64 differs from previous declaration on line 850 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 853.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long".
"/usr/include/unistd.h", line 854.33: 1506-343 (S) Redeclaration of pwrite64 differs from previous declaration on line 851 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 854.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long".
"/usr/include/unistd.h", line 921.25: 1506-343 (S) Redeclaration of fclear64 differs from previous declaration on line 918 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 921.25: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long".
"/usr/include/unistd.h", line 921.25: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".
"/usr/include/unistd.h", line 922.25: 1506-343 (S) Redeclaration of fsync_range64 differs from previous declaration on line 919 of "/usr/include/unistd.h".
"/usr/include/unistd.h", line 922.25: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long".
An example of the error:

In the include file is:
  +168  extern int link(const char *, const char *);
  +169  extern off_t lseek(int, off_t, int);
  +170  #ifdef _LARGE_FILE_API
  +171  extern off64_t  lseek64(int, off64_t, int);
  +172  #endif
Lines 169 and 171 look different enough.

After
cc_r -DHAVE_CONFIG_H -I.. -I../src -I/opt/include/freetype2 -I/opt/include    -I/opt/include/libxml2 -E fcarch.c >x.i

in x.i
 +2393  extern int isatty(int);
 +2394  extern int link(const char *, const char *);
 +2395  extern off_t lseek64(int, off_t, int);
 +2396
 +2397  extern off64_t  lseek64(int, off64_t, int);
 +2398
 +2399  extern long pathconf(const char *, int);
 
cc_r -I.. -I../src -I/opt/include/freetype2 -I/opt/include    -I/opt/include/libxml2 -E fcarch.c >x.i

in x.i
 +2393  extern int isatty(int);
 +2394  extern int link(const char *, const char *);
 +2395  extern off_t lseek(int, off_t, int);
 +2396
 +2397  extern off64_t  lseek64(int, off64_t, int);
 +2398
 +2399  extern long pathconf(const char *, int);

So, it seems there is something in config.h that is trigering a define of lseek to lseek64 and "a problem"

From an examination of /usr/include/unistd.h the define - in the way - seems to be _LARGE_FILES

in /usr/include/stdint.h

Again...
  +164  extern pid_t getpid(void);
  +165  extern pid_t getppid(void);
  +166  extern uid_t getuid(void);
  +167  extern int isatty(int);
  +168  extern int link(const char *, const char *);
  +169  extern off_t lseek(int, off_t, int);
  +170  #ifdef _LARGE_FILE_API
  +171  extern off64_t  lseek64(int, off64_t, int);
  +172  #endif
  +173  extern long pathconf(const char *, int);
  +174  extern int pause(void);
  +175  extern int pipe(int []);

but preceding this there is:
   +68  #ifdef _POSIX_SOURCE
   +69  #ifdef _LARGE_FILES
   +70  #define lseek lseek64
   +71  #endif
   +72

And later,
  +730  #if _XOPEN_SOURCE_EXTENDED==1
  +731  #ifdef _LARGE_FILES
  +732  #define ftruncate       ftruncate64
  +733  #define truncate        truncate64
  +734  #endif
  +735

  +845  #ifdef _LARGE_FILES
  +846  #define pread           pread64
  +847  #define pwrite          pwrite64
  +848  #endif /* _LARGE_FILES */

  +914  #ifdef _LARGE_FILES
  +915  #define fclear fclear64
  +916  #define fsync_range     fsync_range64
  +917  #endif
  +918          extern off_t    fclear(int, off_t);
  +919          extern int      fsync_range(int, int, off_t, off_t);
  +920  #ifdef _LARGE_FILE_API
  +921          extern off64_t  fclear64(int, off64_t);
  +922          extern int      fsync_range64(int, int, off64_t, off64_t);
  +923  #endif

So, it seems there is an inaccurate assumption regarding the affect/interaction of _LARGE_FILES and _LARGE_FILE_API

Looking at config.h.in - it looks as it _LARGE_FILES was added to assist with AIX, and now it is getting the way (fun :p)

I cannot find where the code for configure is generated. I suspect that - MAYBE - this was important for when
32-bit hardware was out there (in 1997 64-bit file support was added to AIX 4.2.0 even though the kernel was
still 32-bit as well as 'normal' pointers.

In any case - this was not a problem I encounter with fontconfig-2.4.2 (ancient!!) but do now.

Give me hints, and I shall test them (as I have time).

Sincerely,
Michael

_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/fontconfig

[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux