Opened 6 years ago

Last modified 5 years ago

#7986 new Bugs

iostreams fails to compile on AIX7 XLC11 with _LARGE_FILES

Reported by: Kevin Burge <kevin.burge@…> Owned by: Jonathan Turkanis
Milestone: To Be Determined Component: iostreams
Version: Boost 1.52.0 Severity: Problem
Keywords: Cc:

Description

AIX version: 7100.01.05.1228 VACPP version: 11.1.0.12

Compiling iostreams library with _LARGE_FILES support causes the below compilation errors.

I was able to resolve the compilation error by moving the inclusion of fcntl so that it's _LARGE_FILES macro definitions affects all of the source instead of just part. Patch for 1.52.0 attached.

common.mkdir ../../../bin.v2 common.mkdir ../../../bin.v2/libs common.mkdir ../../../bin.v2/libs/iostreams common.mkdir ../../../bin.v2/libs/iostreams/build common.mkdir ../../../bin.v2/libs/iostreams/build/vacpp common.mkdir ../../../bin.v2/libs/iostreams/build/vacpp/debug vacpp.compile.c++ ../../../bin.v2/libs/iostreams/build/vacpp/debug/file_descriptor.o "../../../libs/iostreams/src/file_descriptor.cpp", line 400.6: 1540-1140 (S) The member "void open64(handle_type, file_descriptor_flags)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 404.6: 1540-1140 (S) The member "void open64(handle_type, bool)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 424.6: 1540-1140 (S) The member "void open64(const std::string &, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 427.6: 1540-1140 (S) The member "void open64(const char *, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 447.6: 1540-1140 (S) The member "void open64(const path &, std::ios::openmode, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 493.6: 1540-1140 (S) The member "void open64(handle_type, file_descriptor_flags)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 497.6: 1540-1140 (S) The member "void open64(handle_type, bool)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 513.6: 1540-1140 (S) The member "void open64(const std::string &, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 517.6: 1540-1140 (S) The member "void open64(const char *, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 521.6: 1540-1140 (S) The member "void open64(const path &, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 565.6: 1540-1140 (S) The member "void open64(handle_type, file_descriptor_flags)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 569.6: 1540-1140 (S) The member "void open64(handle_type, bool)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 585.6: 1540-1140 (S) The member "void open64(const std::string &, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 589.6: 1540-1140 (S) The member "void open64(const char *, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 593.6: 1540-1140 (S) The member "void open64(const path &, std::ios::openmode)" must be declared in its containing class definition. "../../../libs/iostreams/src/file_descriptor.cpp", line 364.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "boost::iostreams::file_descriptor::handle_type". "../../../libs/iostreams/src/file_descriptor.cpp", line 364.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 369.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "boost::iostreams::file_descriptor::handle_type". "../../../libs/iostreams/src/file_descriptor.cpp", line 369.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 389.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "const std::_LFS_ON::basic_string<char,std::char_traits<char>,std::allocator<char> >". "../../../libs/iostreams/src/file_descriptor.cpp", line 389.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 460.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "boost::iostreams::file_descriptor_source::handle_type". "../../../libs/iostreams/src/file_descriptor.cpp", line 460.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 465.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "boost::iostreams::file_descriptor_source::handle_type". "../../../libs/iostreams/src/file_descriptor.cpp", line 465.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 482.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "const std::_LFS_ON::basic_string<char,std::char_traits<char>,std::allocator<char> >". "../../../libs/iostreams/src/file_descriptor.cpp", line 482.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 533.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "boost::iostreams::file_descriptor_sink::handle_type". "../../../libs/iostreams/src/file_descriptor.cpp", line 533.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 538.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "boost::iostreams::file_descriptor_sink::handle_type". "../../../libs/iostreams/src/file_descriptor.cpp", line 538.8: 1540-1205 (I) The error occurred while converting to parameter 1 of "open64(const char *, int, ...)". "../../../libs/iostreams/src/file_descriptor.cpp", line 555.8: 1540-0256 (S) A parameter of type "const char *" cannot be initialized with an expression of type "const std::_LFS_ON::basic_string<char,std::char_traits<char>,std::allocator<char> >".

Attachments (1)

iostreams.patch (496 bytes) - added by Kevin Burge <kevin.burge@…> 6 years ago.
Patch of file_descriptor.hpp

Download all attachments as: .zip

Change History (2)

Changed 6 years ago by Kevin Burge <kevin.burge@…>

Attachment: iostreams.patch added

Patch of file_descriptor.hpp

comment:1 Changed 5 years ago by viboes

Type: Support RequestsBugs
Note: See TracTickets for help on using tickets.