This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

BBv2 bjam under Cygwin keeps including unused DLL at link stage


Hi, I'm facing a problem with Bjam under Cygwin. My directory tree looks as
follows:

src/
  - Jamroot
  +      libFTree/
              - Jamfile
              - ... (source files)
              +  Tests/
                         +   Test02/
                                     - Jamfile
                                     - ... (source files)

When I use Bjam to build libFTree DLL, this is what cygcheck sees in it:

Found: c:\FORWARE\PortableForware\win32\FTree.dll
c:\FORWARE\PortableForware\win32\FTree.dll
  C:\cygwin\bin\cygwin1.dll
    C:\WINDOWS\system32\ADVAPI32.DLL
      C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\KERNEL32.dll
      C:\WINDOWS\system32\RPCRT4.dll
Error: could not find cyggraph-4.dll
Error: could not find cyggvc-4.dll

However the command line that I get from BJAM (-d+2 option) looks like this:


gcc.link.dll bin/gcc-3.4.4/debug/libFTree.dll.a

    "g++" -L"/usr/local/lib" 
"-Wl,--out-implib,bin/gcc-3.4.4/debug/libFTree.dll
.a" -o "bin/gcc-3.4.4/debug/FTree.dll" -Wl,-h -Wl,FTree.dll -shared
-Wl,--start-
group "bin/gcc-3.4.4/debug/FTree.o" "bin/gcc-3.4.4/debug/FRaw.o"
"bin/gcc-3.4.4/
debug/FTreeList.o" "bin/gcc-3.4.4/debug/FTreeGenerated.o"
"bin/gcc-3.4.4/debug/F
Hardware.o" "bin/gcc-3.4.4/debug/FHW_Port.o"
"bin/gcc-3.4.4/debug/FHW_Unit.o" "b
in/gcc-3.4.4/debug/FHW_Net.o" "bin/gcc-3.4.4/debug/FHW_StateMachine.o"
"bin/gcc-
3.4.4/debug/FHdlEmitter.o" "bin/gcc-3.4.4/debug/FHW_InLnP.o"
"bin/gcc-3.4.4/debu
g/FHW_Constraint.o" "bin/gcc-3.4.4/debug/FBackend.o"
"bin/gcc-3.4.4/debug/FGraph
.o" "bin/gcc-3.4.4/debug/FSymtab.o" "bin/gcc-3.4.4/debug/FTreeBrowser.o"
"bin/gc
c-3.4.4/debug/FTreeWriter.o" "bin/gcc-3.4.4/debug/FCFGNode.o"
"bin/gcc-3.4.4/deb
ug/FControlFlow.o" "bin/gcc-3.4.4/debug/FGraphNode.o"
"bin/gcc-3.4.4/debug/FStat
s.o" "bin/gcc-3.4.4/debug/FVerifier.o" "bin/gcc-3.4.4/debug/FPrettyWriter.o"
"bi
n/gcc-3.4.4/debug/FPool.o" "bin/gcc-3.4.4/debug/FMemoryManager.o"
"bin/gcc-3.4.4
/debug/FResourceTable.o" "bin/gcc-3.4.4/debug/FTimingTable.o"
"bin/gcc-3.4.4/deb
ug/FBehavioralSynthesis.o" "bin/gcc-3.4.4/debug/FApplication.o"
"bin/gcc-3.4.4/d
ebug/FTreeHandler.o" "bin/gcc-3.4.4/debug/FGarbageCollector.o"
"bin/gcc-3.4.4/de
bug/FIRer.o" "bin/gcc-3.4.4/debug/FBoostGraph.o"  -Wl,-Bstatic
-lboost_filesyste
m-gcc34-mt-1_34_1 -Wl,-Bdynamic  -Wl,--end-group -g


There is no reference to any of cyggraph-4.dll or cyggvc-4.dll import libs,
which by the way are Graphviz libs that I used a few days ago and now I've
removed from Cygwin and from Jamfiles.


If I use a regular makefile to build a static library, this is what cygcheck
sees:

$ cygcheck ./libFTree.a
.\libFTree.a

In this case, the command to build the static library looks like this:

ar ru libFTree.a ftreeGeneric/FTree.o ftreeGeneric/FRaw.o
ftreeGeneric/FTreeList
.o ftreeAutoGenerated/FTreeGenerated.o ftreeHardware/FHardware.o
ftreeHardware/F
HW_Port.o ftreeHardware/FHW_Unit.o ftreeHardware/FHW_Net.o
ftreeHardware/FHW_Sta
teMachine.o ftreeHardware/FHdlEmitter.o ftreeHardware/FHW_InLnP.o
ftreeHardware/
FHW_Constraint.o ftreeHardware/FBackend.o ftreeUtils/FGraph.o
ftreeUtils/FSymtab
.o ftreeUtils/FTreeBrowser.o ftreeUtils/FTreeWriter.o ftreeUtils/FCFGNode.o
ftre
eUtils/FControlFlow.o ftreeUtils/FGraphNode.o ftreeUtils/FStats.o
ftreeUtils/FVe
rifier.o ftreeUtils/FPrettyWriter.o ftreeUtils/FPool.o
ftreeUtils/FMemoryManager
.o ftreeUtils/FResourceTable.o ftreeUtils/FTimingTable.o
ftreeUtils/FBehavioralS
ynthesis.o ftreeUtils/FApplication.o ftreeUtils/FTreeHandler.o
ftreeUtils/FGarba
geCollector.o ftreeUtils/FIRer.o ftreeUtils/FBoostGraph.o
ar: creating libFTree.a

After linking the executable with the static library, cygcheck sees this:

$ cygcheck ./main.exe
.\main.exe
  C:\cygwin\bin\cygwin1.dll
    C:\WINDOWS\system32\ADVAPI32.DLL
      C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\KERNEL32.dll
      C:\WINDOWS\system32\RPCRT4.dll


May this be a bug in BJAM? Maybe it holds a cache of dependencies, since
some time ago I used Graphviz libraries... Any ideas?

Regards.

-- 
View this message in context: http://www.nabble.com/BBv2-bjam-under-Cygwin-keeps-including-unused-DLL-at-link-stage-tp14577667p14577667.html
Sent from the Cygwin list mailing list archive at Nabble.com.


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]