Build error on AIX 5.3

Questions or HOWTOs about the above? Post 'em here...
Post Reply
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Build error on AIX 5.3

Post by ukyo »

hi guys..
i'm 'back'... (http://my.bzflag.org/bb/viewtopic.php?p ... e5a9c5ddbc)
trying this again on AIX 5.3 this time... cos I noticed someone built SDL....
http://www.perzl.org/aix/index.php?n=Main.SDL

anyway.. this is the error i'm getting now..


g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -DINSTALL_DATA_DIR=\"/usr/local/share/bzflag\" -fsigned-char -Wno-deprecated -g -O2 -c cURLManager.cxx -o cURLManager.o
In file included from cURLManager.cxx:15:
../../include/cURLManager.h:76: error: ISO C++ forbids declaration of `CURLM'
with no type
../../include/cURLManager.h:76: error: parse error before `*' token
cURLManager.cxx:22: error: syntax error before `*' token
cURLManager.cxx: In constructor `cURLManager::cURLManager()':
cURLManager.cxx:64: error: `CURLOPT_NOSIGNAL' undeclared (first use this
function)
cURLManager.cxx:64: error: (Each undeclared identifier is reported only once
for each function it appears in.)
cURLManager.cxx:74: error: `CURLOPT_WRITEDATA' undeclared (first use this
function)
cURLManager.cxx: In static member function `static void cURLManager::setup()':
cURLManager.cxx:98: error: `multiHandle' undeclared (first use this function)
cURLManager.cxx:99: error: `curl_multi_init' undeclared (first use this
function)
cURLManager.cxx: In member function `void cURLManager::addHandle()':
cURLManager.cxx:228: error: `CURLMcode' undeclared (first use this function)
cURLManager.cxx:228: error: parse error before `=' token
cURLManager.cxx:229: error: `result' undeclared (first use this function)
cURLManager.cxx:229: error: `CURLM_OK' undeclared (first use this function)
cURLManager.cxx: In member function `void cURLManager::removeHandle()':
cURLManager.cxx:239: error: parse error before `=' token
cURLManager.cxx: In static member function `static int
cURLManager::fdset(fd_set&, fd_set&)':
cURLManager.cxx:273: error: parse error before `;' token
cURLManager.cxx:277: error: `curl_multi_fdset' undeclared (first use this
function)
cURLManager.cxx: In static member function `static bool cURLManager::perform()
':
cURLManager.cxx:290: error: parse error before `;' token
cURLManager.cxx:293: error: `curl_multi_perform' undeclared (first use this
function)
cURLManager.cxx:294: error: `CURLM_CALL_MULTI_PERFORM' undeclared (first use
this function)
cURLManager.cxx:302: error: `CURLMsg' undeclared (first use this function)
cURLManager.cxx:302: error: `pendingMsg' undeclared (first use this function)
cURLManager.cxx:306: error: `curl_multi_info_read' undeclared (first use this
function)
cURLManager.cxx: In member function `void cURLManager::infoComplete(CURLcode)':
cURLManager.cxx:328: error: cannot convert `curl_httppost*' to `HttpPost*' for
argument `1' to `void curl_formfree(HttpPost*)'
cURLManager.cxx: In member function `void
cURLManager::setTimeCondition(cURLManager::timeCondition, time_t&)':
cURLManager.cxx:372: error: `CURL_TIMECOND_NONE' undeclared (first use this
function)
cURLManager.cxx:380: error: `CURL_TIMECOND_IFMODSINCE' undeclared (first use
this function)
cURLManager.cxx: In member function `void cURLManager::addFormData(const char*,
const char*)':
cURLManager.cxx:424: error: parse error before `;' token
cURLManager.cxx:429: error: cannot convert `curl_httppost**' to `HttpPost**'
for argument `1' to `int curl_formadd(HttpPost**, HttpPost**, ...)'
cURLManager.cxx:430: error: `CURL_FORMADD_OK' undeclared (first use this
function)
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak »

Sounds like your libcurl is either very old or not multithreaded. What is the output of "curl-config --version"?
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

yer.. old.. didn't even have "curl-config"

$ curl --version
curl 7.9.3 (powerpc-ibm-aix4.3.3.0) libcurl 7.9.3

I've now updated.. to v7.18.1
# curl --version
curl 7.18.1 (powerpc-ibm-aix5.1.0.0) libcurl/7.18.1 OpenSSL/0.9.7l zlib/1.1.4 libidn/1.8
Protocols: tftp ftp telnet dict http file https ftps
Features: IDN IPv6 Largefile NTLM SSL libz


it stops here now..

g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -DINSTALL_DATA_DIR=\"/usr/local/share/bzflag\" -fsig ned-char -Wno-deprecated -g -O2 -g -O2 -c network.cxx -o libNet_la-network.o
network.cxx: In function `void bzfherror(const char*)':
network.cxx:59: error: `hstrerror' undeclared (first use this function)
network.cxx:59: error: (Each undeclared identifier is reported only once for
each function it appears in.)
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

ok.. fixed that one myself.. :)

i found my old post via google.. .so i did this.. as per my post on AIX 5.2..
Assuming you're using gmake, please try

make CFLAGS="$CFLAGS -D_USE_IRS"

If you are not using gmake, edit the src/net/network.cxx and add a "#define _USE_IRS 1" at the top of the file.
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

fyi.. it stopped here..

NetHandler.cxx:134: error: invalid conversion from `int*' to `socklen_t*'

so as per previous post..
i've changed " &recvlen" to " (socklen_t*) &recvlen". line 134
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

fyi.. it stopped here..

g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -DINSTALL_DATA_DIR=\"/usr/local/share/bzf lag\" -DINSIDE_BZ -fsigned-char -Wno-deprecated -g -O2 -c -o bzfs.o bzfs.cxx
bzfs.cxx: In function `bool serverStart()':
bzfs.cxx:791: error: invalid conversion from `int*' to `socklen_t*'
bzfs.cxx: In function `void acceptClient()':
bzfs.cxx:1105: error: invalid conversion from `int*' to `socklen_t*'

so as per the post in AIX.. 5.2
I've changed " &addrLen" to " (socklen_t*) &addrLen" on lines 791 and 1105
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

so i hit this again..

Code: Select all

g++ -fsigned-char -Wno-deprecated -g -O2 -o bzfs AccessControlList.o Authentication.o BanCommands.o bzfsAPI.o BZWError.o BZWReader.o CmdLineOrc.o CustomBase.o CustomBox.o CustomCone.o CustomDynamicColor.o CustomGate.o CustomGroup.o CustomLink.o CustomMaterial.o CustomMesh.o CustomMMeshTransform.o CustomPhysicsDriver.o CustomSphere.o CustomTextureMatrix.o CustomPyramid.o CustomTetra.o CustomWaterLevel.o CustomWeapon.o CuomZone.o DropGeometry.o EntryZones.o Filter.o FlagHistory.o FlagInfo.o GameKeeper.o ListServerConnection.o MasterBanList.o ParseMaterial.o PeomSpawnPolicy.o RecordReplay.o RejoinList.o Score.o ServerCommand.o SpawnPolicy.o SpawnPosition.o TeamBases.o WorldFileLocation.o WorldFileObObstacle.o WorldGenerators.o WorldInfo.o WorldWeapons.o WorldEventManager.o commands.o bzfs.o  ../obstacle/.libs/libObstacle.a -L/CML/rts/buipc-ibm-aix5.2.0.0/libstdc++-v3/src -L/CML/rts/build/gcc-obj/powerpc-ibm-aix5.2.0.0/libstdc++-v3/src/.libs -L/CML/rts/build/gcc-obj/gcc -L/usr-lib/.. ../game/.libs/libGame.a ../net/.libs/libNet.a ../common/.libs/libCommon.a -L/opt/freeware/lib -lcurl -lidn /opt/freeware/lib/libintl.ap/sb/p64/export/power_510_32/usr/lib -L/gestconf/project/GNOME_ACL/GNOME/build/sh_dev_GNOME/export/power_510_32/usr/lib -L/gestconf/project/build/latest/export/power_510_32/usr/lib -L/users/project/PDP/PDP_51_050/usr/ccs/lib -L/users/project/PDP/PDP_51_050/usr/lib -liconv -lssl -l/.libs/libcares.a ../regex/.libs/libregex.a -lz ../date/.libs/libDate.a /usr/contrib/lib/./libstdc++.a -lc -lgcc_s -lbind -lm -Wl,-blibpath:/:/usr/contrib/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2:/usr/contrib/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/../../..:/usr/lib:/lib
ld: 0711-224 WARNING: Duplicate symbol: ._GLOBAL__I_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: ._GLOBAL__D_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: fc_softc
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__I_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__D_fc_softc
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: .QuadWallSceneNode::QuadWallSceneNode[in-charge](float const*, float const*, float const*, float, float, bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .TriWallSceneNode::TriWallSceneNode[in-charge](float const*, float const*, float const*, float, float, bool)
ld: 0711-317 ERROR: Undefined symbol: .QuadWallSceneNode::QuadWallSceneNode[in-charge](float const*, float const*, float const*, float, float, float, float, bool)
ld: 0711-317 ERROR: Undefined symbol: .OccluderSceneNode::OccluderSceneNode[in-charge](MeshFace const*)
ld: 0711-317 ERROR: Undefined symbol: Singleton<TextureManager>::_instance
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::TextureManager[in-charge]()
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::getTextureID(char const*, bool)
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::getInfo(int)
ld: 0711-317 ERROR: Undefined symbol: .MeshFragSceneNode::MeshFragSceneNode[in-charge](int, MeshFace const**)
ld: 0711-317 ERROR: Undefined symbol: .MeshSceneNode::MeshSceneNode[in-charge](MeshObstacle const*)
ld: 0711-317 ERROR: Undefined symbol: .MeshPolySceneNode::MeshPolySceneNode[in-charge](float const*, bool, bool, GLfloat3Array const&, GLfloat3Array const&, GLfloat2Array const&)
ld: 0711-317 ERROR: Undefined symbol: .OpenGLMaterial::OpenGLMaterial[in-charge](float const*, float const*, float)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setMaterial(OpenGLMaterial const&)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setDynamicColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setModulateColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setLightedColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setLightedModulateColor(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setTexture(int)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setTextureMatrix(float const*)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setBlending(bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setSphereMap(bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setAlphaThreshold(float)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setNoCulling(bool)
ld: 0711-317 ERROR: Undefined symbol: .WallSceneNode::setNoSorting(bool)
ld: 0711-317 ERROR: Undefined symbol: .OpenGLMaterial::~OpenGLMaterial [in-charge]()
ld: 0711-317 ERROR: Undefined symbol: .TextureManager::~TextureManager [in-charge]()
collect2: ld returned 8 exit status
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.

so as per last time i did a make -k

then i saw this again..
"collect2: ../platform/.libs/libPlatform.a: not a COFF file"
and the libPlatform.a is again too small.. just a few bytes like last time

Code: Select all

g++ -fsigned-char -Wno-deprecated -g -O2 -o bzflag ActionBinding.o AudioMenu.o AutoPilot.o BackgroundRenderer.o BaseLocalPlayer.o CacheMenu.o clientConfig.o CommandsImplementation.o ComposeDefaultKey.o ControlPanel.o defaultBZDB.o DisplayMenu.o Downloads.o EffectsMenu.o effectsRenderer.o EntryZone.o FlashClock.o ForceFeedback.o FormatMenu.o GuidedMissleStrategy.o GUIOptionsMenu.o HelpMenu.o HUDDialog.o HUDDialogStack.o HUDRenderer.o HUDui.o HUDuiControl.o HUDuiDefaultKey.o HUDuiLabel.o HUDuiList.o HUDuiTextureLabel.o HUDuiTypeIn.o JoinMenu.o InputMenu.o KeyboardMapMenu.o LocalCommand.o LocalPlayer.o MainMenu.o MainWindow.o MenuDefaultKey.o motd.o NewVersionMenu.o OptionsMenu.o Player.o Plan.o QuickKeysMenu.o QuitMenu.o RadarRenderer.o Region.o RegionPriorityQueue.o RemotePlayer.o Roaming.o RobotPlayer.o RoofTops.o Roster.o SaveWorldMenu.o SceneBuilder.o SceneRenderer.o ScoreboardRenderer.o SegmentedShotStrategy.o ServerCommandKey.o ServerLink.o ServerMenu.o ServerStartMenu.o ShockWaveStrategy.o ShotPath.o ShotPathSegment.o ShotStats.o ShotStatsDefaultKey.o ShotStatistics.o ShotStrategy.o SilenceDefaultKey.o TargetingUtils.o TrackMarks.o Weapon.o WeatherRenderer.o World.o WorldBuilder.o WorldPlayer.o bzflag.o callbacks.o clientCommands.o daylight.o playing.o sound.o stars.o  ../3D/.libs/lib3D.a -L/CML/rts/build/gcc-obj/powerpc-ibm-aix5.2.0.0/libstdc++-v3/src -L/CML/rts/build/gcc-obj/powerpc-ibm-aix5.2.0.0/libstdc++-v3/src/.libs -L/CML/rts/build/gcc-obj/gcc -L/usr/contrib/lib/gcc-lib/.. ../game/.libs/libGame.a ../net/.libs/libNet.a ../obstacle/.libs/libObstacle.a ../platform/.libs/libPlatform.a ../ogl/.libs/libGLKit.a ../scene/.libs/libSceneDB.a ../geometry/.libs/libGeometry.a ../mediafile/.libs/libMediaFile.a ../common/.libs/libCommon.a ../c-ares/.libs/libcares.a ../regex/.libs/libregex.a -lGLU -lGL -lXext -lSM -lICE -lX11 -L/opt/freeware/lib -lcurl -lidn -lintl -L/users3/olivap/sb/p64/export/power_510_32/usr/lib -L/gestconf/project/GNOME_ACL/GNOME/build/sh_dev_GNOME/export/power_510_32/usr/lib -L/gestconf/project/GNOME_ACL/GNOME/build/latest/export/power_510_32/usr/lib -L/users/project/PDP/PDP_51_050/usr/ccs/lib -L/users/project/PDP/PDP_51_050/usr/lib -liconv -lssl -lcrypto -lz ../date/.libs/libDate.a -L/usr/contrib/lib/. -lstdc++ -lc -lgcc_s -lbind -lm -Wl,-blibpath:/opt/freeware/lib:/usr/contrib/lib/.:/usr/contrib/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2:/usr/contrib/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/../../..:/usr/lib:/lib
collect2: ../platform/.libs/libPlatform.a: not a COFF file
make: 1254-004 The error code from the last command is 1.
 (continuing)
Target "all" did not make because of errors.
and it dies again with linker issues.. and Undefined symbols

Code: Select all

++ -fsigned-char -Wno-deprecated -g -O2 -o bzadmin BZAdminClient.o BZAdminUI.o OptionParser.o ServerLink.o StdBothUI.o StdInUI.o StdOutUI.o UIMap.o bzadmin.o  ../date/.libs/libDate.a -L/CML/rts/build/gcc-obj/powerpc-ibm-aix5.2.0.0/libstdc++-v3/src -L/CML/rts/build/gcc-obj/powerpc-ibm-aix5.2.0.0/libstdc++-v3/src/.libs -L/CML/rts/build/gcc-obj/gcc -L/usr/contrib/lib/gcc-lib/.. ../game/.libs/libGame.a ../net/.libs/libNet.a ../common/.libs/libCommon.a -L/usr/contrib/lib/. -lstdc++ -lc -lgcc_s -L/opt/freeware/lib -lcurl -lidn -lintl -L/users3/olivap/sb/p64/export/power_510_32/usr/lib -L/gestconf/project/GNOME_ACL/GNOME/build/sh_dev_GNOME/export/power_510_32/usr/lib -L/gestconf/project/GNOME_ACL/GNOME/build/latest/export/power_510_32/usr/lib -L/users/project/PDP/PDP_51_050/usr/ccs/lib -L/users/project/PDP/PDP_51_050/usr/lib -liconv -lssl -lcrypto -lz ../regex/.libs/libregex.a -lbind -lm -Wl,-blibpath:/usr/contrib/lib/.:/opt/freeware/lib:/usr/contrib/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2:/usr/contrib/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/../../..:/usr/lib:/lib
ld: 0711-224 WARNING: Duplicate symbol: ._GLOBAL__I_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: ._GLOBAL__D_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: fc_softc
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__I_fc_softc
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__D_fc_softc
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: .MeshObstacle::getClassName()
ld: 0711-317 ERROR: Undefined symbol: .MeshFace::getClassName()
ld: 0711-317 ERROR: Undefined symbol: OBSTACLEMGR
ld: 0711-317 ERROR: Undefined symbol: .MeshObstacle::containsPointNoOctree(float const*) const
collect2: ld returned 8 exit status
make: 1254-004 The error code from the last command is 1.
 (continuing)
Target "all" did not make because of errors.
Target "all-am" is up to date.
make: 1254-004 The error code from the last command is 1.
 (continuing)
Target "all" did not make because of errors.
Target "all-am" is up to date.
make: 1254-004 The error code from the last command is 1.
 (continuing)
Target "all" did not make because of errors.
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

I've added the obstacle thing to the Makefile for bzadmin as per the post in aix 5.2...

fyi.. when I do a ./configure..
I do it with --disable-sdltest
This is cos it complains about sdl_image.h missing.. which I don't have... but I don't think we need it right?

libPlatform.a just isn't being built..
when I go into platform and do a make it doesn't build a thing.. and like you previously stated its probably cos there isn't anything defined for AIX... how do we go about fooling it to build as linux?
is it just setting "build=linux" in the makefile? or "LINUX_TRUE = " in the makefile?

and it seems with/without SDL is only for when its built for linux.. is that right?
User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak »

Best way to make it build like most other unices is to find these few lines in configure.ac (excerpt from 2.0.10, it's slightly different in trunk):

case $host_os in
linux*|kfreebsd*|freebsd*|netbsd*|dragonfly*) linux=true;;
*) linux=false;;
esac

and add aix to the first case:

case $host_os in
linux*|kfreebsd*|freebsd*|netbsd*|dragonfly*|aix*) linux=true;;
*) linux=false;;
esac

with/without sdl affects several platforms. Linux is the best-tested and most flexible.
ukyo
Private First Class
Private First Class
Posts: 21
Joined: Mon Aug 29, 2005 3:42 am

Post by ukyo »

FYI.. It stopped in platform again..

Making all in platform
make[2]: Entering directory `/CML/rts/home/wtang/bzflag-2.0.10/src/platform'
make[3]: Entering directory `/CML/rts/home/wtang/bzflag-2.0.10/src/platform'
/bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -I/opt/freeware/include -DINSTALL_DATA_DIR=\"/usr/local/share/bzflag\" -I/opt/freeware/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -mthreads -fsigned-char -Wno-deprecated -g -O2 -c -o PlatformFactory.lo PlatformFactory.cxx
g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -I/opt/freeware/include -DINSTALL_DATA_DIR=\"/usr/local/share/bzflag\" -I/opt/freeware/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -mthreads -fsigned-char -Wno-deprecated -g -O2 -c PlatformFactory.cxx -o PlatformFactory.o
cc1plus: error: invalid option `threads'
make[3]: *** [PlatformFactory.lo] Error 1
make[3]: Leaving directory `/CML/rts/home/wtang/bzflag-2.0.10/src/platform'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/CML/rts/home/wtang/bzflag-2.0.10/src/platform'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/CML/rts/home/wtang/bzflag-2.0.10/src'
gmake: *** [all-recursive] Error 1


So I changed src/platform/Makefile
from
SDL_CFLAGS = -I/opt/freeware/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -mthreads
to
SDL_CFLAGS = -I/opt/freeware/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
Post Reply