Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/TASM/TD/TASM32    [ Add a report in this area ]  
Report #:  68401   Status: Closed
tasm32 build does not generate .obj and fails silently
Project:  C++Builder Build #:  12.0.3170.16989
Version:    12.0 Submitted By:   Kris Kumler
Report Type:  Basic functionality failure Date Reported:  10/29/2008 5:52:15 PM
Severity:    Commonly encountered problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All platforms Internal Tracking #:   266300
Resolution: Fixed (Resolution Comments) Resolved in Build: : 12.0.3313.19223
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: 1
Description
The project settings can add too many include file search paths (/i) onto the tasm32 command line.  When this fails to build the object file, it fails silently.  The output from tasm32 is the normal help screen.  The linker will eventually fail when it needs something that was in the assembler files.

A simple (non-sense) project has been created and will be attached.  Several worthless include file path items have been added to reach the error.

Snippet from output:
          Task "BCC32"
            Command:
            c:\program files\codegear\rad studio\6.0\bin\bcc32.exe -D_DEBUG -D_RTLDLL;_NO_VCL;USEPACKAGES -Iasmtest;"C:\Program Files\CodeGear\RAD Studio\6.0\include\boost_1_35\boost\tr1\tr1";"c:\program files\codegear\rad studio\6.0\include";"c:\program files\codegear\rad studio\6.0\include\dinkumware";"c:\program files\codegear\rad studio\6.0\include\vcl";"C:\Program Files\CodeGear\RAD Studio\6.0\include\boost_1_35";c:;c:\temp;c:\windows;c:\windows\system32;"c:\program files";"c:\program files\codegear";"C:\Program Files\CodeGear\RAD Studio";"C:\Program Files\CodeGear\RAD Studio\6.0";"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage";"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage\css";"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage\Images";"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage\xml";"c:\program files\codegear\rad studio\6.0\ObjRepos\Cpp";"c:\program files\codegear\rad studio\6.0\include\Indy10";"c:\program files\codegear\rad studio\6.0\RaveReports\Lib" -y -k -r- -c -B  -tWC -tWM -C8 -oDebug\asmtest.obj -w-par -Od -vi- -v -H=Debug\asmtest.pch -H asmtest.cpp
            Command:
            c:\program files\codegear\rad studio\6.0\bin\tasm32.exe /iasmtest /i"C:\Program Files\CodeGear\RAD Studio\6.0\include\boost_1_35\boost\tr1\tr1" /i"c:\program files\codegear\rad studio\6.0\include" /i"c:\program files\codegear\rad studio\6.0\include\dinkumware" /i"c:\program files\codegear\rad studio\6.0\include\vcl" /i"C:\Program Files\CodeGear\RAD Studio\6.0\include\boost_1_35" /ic: /ic:\temp /ic:\windows /ic:\windows\system32 /i"c:\program files" /i"c:\program files\codegear" /i"C:\Program Files\CodeGear\RAD Studio" /i"C:\Program Files\CodeGear\RAD Studio\6.0" /i"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage" /i"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage\css" /i"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage\Images" /i"C:\Program Files\CodeGear\RAD Studio\6.0\Welcomepage\xml" /i"c:\program files\codegear\rad studio\6.0\ObjRepos\Cpp" /i"c:\program files\codegear\rad studio\6.0\include\Indy10" /i"c:\program files\codegear\rad studio\6.0\RaveReports\Lib"  /ml Debug\asmtest.asm , Debug\asmtest.obj
            The "TASM32" task is using "tasm32" from "c:\program files\codegear\rad studio\6.0\bin\tasm32.exe".
            Turbo Assembler  Version 5.3  Copyright (c) 1988, 2007 CodeGear
            Syntax:  TASM [options] source [,object] [,listing] [,xref]
            /a,/s          Alphabetic or Source-code segment ordering
            /c             Generate cross-reference in listing
            /dSYM[=VAL]    Define symbol SYM = 0, or = value VAL
            /e,/r          Emulated or Real floating-point instructions
            /h,/?          Display this help screen
            /iPATH         Search PATH for include files
            /jCMD          Jam in an assembler directive CMD (eg. /jIDEAL)
            /kh#           Hash table capacity # symbols
            /l,/la         Generate listing: l=normal listing, la=expanded listing
            /ml,/mx,/mu    Case sensitivity on symbols: ml=all, mx=globals, mu=none
            /mv#           Set maximum valid length for symbols
            /m#            Allow # multiple passes to resolve forward references
            /n             Suppress symbol tables in listing
            /os,/o,/op,/oi Object code: standard, standard w/overlays, Phar Lap, IBM
            /p             Check for code segment overrides in protected mode
            /q             Suppress OBJ records not needed for linking
            /t             Suppress messages if successful assembly
            /uxxxx         Set version emulation, version xxxx
            TASM32 : /w0,/w1,/w2    Set warning level: w0=none, w1=w2=warnings on
            /w-xxx,/w+xxx  Disable (-) or enable (+) warning xxx
            /x             Include false conditionals in listing
            /z             Display source line with error message
            /zi,/zd,/zn    Debug info: zi=full, zd=line numbers only, zn=none
          Done executing task "BCC32".
Steps to Reproduce:
1) Create project with C++ source file with inline assembly language code.

2) Have numerous items in the project include file path option.

3) Compile to failure.  In the detailed build output, the tasm32 help screen can be seen where it should instead be assembling.
Workarounds
Remove items from the include file path list until it compiles.
Attachment
68401.zip
Comments

Kris Kumler at 10/29/2008 6:32:50 PM -
The issue seems to not be the number of include file paths, but the total length of the tasm32 command parameters.  I had one project where the assembly files outputted were left as basename.o instead of basename.obj.  Removing one item from the include path to shorten the command and the obj file is generated with the correct name.

This may be what is also happening with the older report # 58149.

Server Response from: ETNACODE01