How to fix cgo error caused by race flag? - go

How can I fix this?
STDERR: # runtime/cgo
gcc_libinit_windows.c: In function ‘_cgo_beginthread’:
gcc_libinit_windows.c:136:27: error: implicit declaration of function ‘_beginthread’; did you mean ‘_cgo_beginthread’? [-Werror=implicit-function-declaration]
136 | thandle = _beginthread(func, 0, arg);
| ^~~~~~~~~~~~
| _cgo_beginthread
cc1: all warnings being treated as errors
make[1]: *** [Makefile:15: unit] Error 2
https://go.dev/src/runtime/cgo/gcc_libinit_windows.c

It turned out that it was some issue with cygwin compiler, after switching to mingw (https://github.com/niXman/mingw-builds-binaries/releases) everything works fine.

see the file go1.19.1\src\runtime\cgo\libcgo_windows.h
// Call _beginthread, aborting on failure.
void _cgo_beginthread(void (*func)(void*), void* arg);
so...
delete function _cgo_beginthread in gcc_libinit_windows.c will fix it

Related

What does --with-cflags="-Wno-error=implicit-function-declaration" do?

I was struggling to install thin as a dependency in a Ruby project, when I came across this solution here: https://github.com/macournoyer/thin/issues/365#issuecomment-692063842 (gem install thin -v '1.7.2' -- --with-cflags="-Wno-error=implicit-function-declaration")
It works, but I'm not very familiar with Ruby so have no idea why. What is this flag doing? Why does it make the install work without any issues?
The error I was getting before this fix:
❯ gem install thin -v '1.7.2'
Building native extensions. This could take a while...
ERROR: Error installing thin:
ERROR: Failed to build gem native extension.
current directory: /Users/XXX/.gem/ruby/2.7.1/gems/thin-1.7.2/ext/thin_parser
/Users/XXX/.rubies/ruby-2.7.1/bin/ruby -I /Users/XXX/.rubies/ruby-2.7.1/lib/ruby/2.7.0 -r ./siteconf20210923-79304-z21dcg.rb extconf.rb
checking for main() in -lc... yes
creating Makefile
current directory: /Users/XXX/.gem/ruby/2.7.1/gems/thin-1.7.2/ext/thin_parser
make "DESTDIR=" clean
current directory: /Users/XXX/.gem/ruby/2.7.1/gems/thin-1.7.2/ext/thin_parser
make "DESTDIR="
compiling parser.c
parser.c:31:18: warning: unused variable 'http_parser_en_main' [-Wunused-const-variable]
static const int http_parser_en_main = 1;
^
1 warning generated.
compiling thin.c
thin.c:242:3: error: implicit declaration of function 'thin_http_parser_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_init(hp);
^
thin.c:242:3: note: did you mean 'http_parser_init'?
./parser.h:41:5: note: 'http_parser_init' declared here
int http_parser_init(http_parser *parser);
^
thin.c:260:3: error: implicit declaration of function 'thin_http_parser_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_init(http);
^
thin.c:277:3: error: implicit declaration of function 'thin_http_parser_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_init(http);
^
thin.c:294:3: error: implicit declaration of function 'thin_http_parser_finish' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_finish(http);
^
thin.c:294:3: note: did you mean 'Thin_HttpParser_finish'?
thin.c:290:7: note: 'Thin_HttpParser_finish' declared here
VALUE Thin_HttpParser_finish(VALUE self)
^
thin.c:296:10: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return thin_http_parser_is_finished(http) ? Qtrue : Qfalse;
^
thin.c:334:5: error: implicit declaration of function 'thin_http_parser_execute' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_execute(http, dptr, dlen, from);
^
thin.c:334:5: note: did you mean 'Thin_HttpParser_execute'?
thin.c:317:7: note: 'Thin_HttpParser_execute' declared here
VALUE Thin_HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
^
thin.c:338:8: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if(thin_http_parser_has_error(http)) {
^
thin.c:338:8: note: did you mean 'http_parser_has_error'?
./parser.h:44:5: note: 'http_parser_has_error' declared here
int http_parser_has_error(http_parser *parser);
^
thin.c:359:10: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return thin_http_parser_has_error(http) ? Qtrue : Qfalse;
^
thin.c:374:10: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return thin_http_parser_is_finished(http) ? Qtrue : Qfalse;
^
9 errors generated.
make: *** [thin.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/XXX/.gem/ruby/2.7.1/gems/thin-1.7.2 for inspection.
Results logged to /Users/XXX/.gem/ruby/2.7.1/extensions/x86_64-darwin-19/2.7.0-static/thin-1.7.2/gem_make.out
I didn't read the stack trace properly...
It looks like this flag is basically telling the compiler to ignore where functions are implicitly declared rather than erroring out when this happens.

What Else Do I Need to Do to Run the lwIP Simulation in Omnet++?

I am still trying to run the following simulation on Omnet 5.6.1 (using INET 4.2.5) inet/examples/inet/nclients/omnetpp.ini.
When I build INET without TCP (lwIP) checkbox checked in the Project Features window I get a clean build. If I check the checkbox I get the following 26 errors:
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:47:9: error: expected ';' at end of declaration list
u32_t s_addr;
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:69:7: error: functions that differ only in their return type cannot be overloaded
u32_t inet_addr(const char *cp);
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:69:7: warning: 'inet_addr' redeclared without 'dllimport' attribute: previous 'dllimport' ignored [-Winconsistent-dllimport]
u32_t inet_addr(const char *cp);
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:47:9: error: expected ';' at end of declaration list
u32_t s_addr;
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:69:7: error: functions that differ only in their return type cannot be overloaded
u32_t inet_addr(const char *cp);
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:69:7: warning: 'inet_addr' redeclared without 'dllimport' attribute: previous 'dllimport' ignored [-Winconsistent-dllimport]
u32_t inet_addr(const char *cp);
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:71:7: error: conflicting types for 'inet_ntoa'
char *inet_ntoa(struct in_addr addr); /* returns ptr to static buffer; not reentrant! */
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:71:7: warning: 'inet_ntoa' redeclared without 'dllimport' attribute: previous 'dllimport' ignored [-Winconsistent-dllimport]
char *inet_ntoa(struct in_addr addr); /* returns ptr to static buffer; not reentrant! */
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:47:9: error: expected ';' at end of declaration list
u32_t s_addr;
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:71:7: error: conflicting types for 'inet_ntoa'
char *inet_ntoa(struct in_addr addr); /* returns ptr to static buffer; not reentrant! */
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:69:7: error: functions that differ only in their return type cannot be overloaded
u32_t inet_addr(const char *cp);
::38: C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\mingw64\x86_64-w64-mingw32\include\winnt.h WINSOCK_API_LINKAGE unsigned __LONG32 WSAAPI inet_addr(const char *cp);:
C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\mingw64\x86_64-w64-mingw32\include\winnt.h:147:37: WINSOCK_API_LINKAGE u_short WSAAPI htons(u_short hostshort);52
^inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h
:111:7: error: functions that differ only in their return type cannot be overloaded
u32_t htonl(u32_t x);
In file included from inet/transportlayer/tcp_lwip/lwip/include\lwip/lwip_tcp.hC:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\mingw64\x86_64-w64-mingw32\include\winnt.hinet/transportlayer/tcp_lwip/lwip/include\lwip/lwip_tcp.h::52: WINSOCK_API_LINKAGE unsigned __LONG32 WSAAPI inet_addr(const char *cp);147:
:In file included from
37 ^inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/lwip_ip.h
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:112:7: error: functions that differ only in their return type cannot be overloaded
u32_t ntohl(u32_t x);
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:71:7: error: conflicting types for 'inet_ntoa'
char *inet_ntoa(struct in_addr addr); /* returns ptr to static buffer; not reentrant! */
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:111:7: error: functions that differ only in their return type cannot be overloaded
u32_t htonl(u32_t x);
In file included from inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/lwip_ip.h::112:7: error: functions that differ only in their return type cannot be overloaded
u32_t ntohl(u32_t x);
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:112:7: error: functions that differ only in their return type cannot be overloaded
u32_t ntohl(u32_t x);
119:9: C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\mingw64\x86_64-w64-mingw32\include\winsock2.hwarning:: 'IN_CLASSB_HOST' macro redefined [-Wmacro-redefined]
#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:111:7: error: functions that differ only in their return type cannot be overloaded
u32_t htonl(u32_t x);
In file included from inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/ip_addr.h:37:
inet/transportlayer/tcp_lwip/lwip/include/ipv4\lwip/inet.h:112:7: error: functions that differ only in their return type cannot be overloaded
u32_t ntohl(u32_t x);
9 warnings and 5 errors generated.
9 warnings and 5 errors generated.
make[1]: *** [Makefile:1762: ../out/clang-debug/src/inet/transportlayer/tcp_lwip/LwipTcpLayer.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1762: ../out/clang-debug/src/inet/transportlayer/tcp_lwip/lwip/core/memp.o] Error 1
9 warnings and 5 errors generated.
make[1]: *** [Makefile:1762: ../out/clang-debug/src/inet/transportlayer/tcp_lwip/TcpLwipConnection.o] Error 1
9 warnings and 5 errors generated.
make[1]: *** [Makefile:1762: ../out/clang-debug/src/inet/transportlayer/tcp_lwip/TcpLwip.o] Error 1
make[1]: Leaving directory '/c/OMNET/omnetpp561/inet4/src'
make: *** [Makefile:7: all] Error 2
"make MODE=debug -j4 all" terminated with exit code 2. Build might be incomplete.
When I try to run the simulation I get the following error:
<!> Error: Cannot load library '../../../src//libINET.dll': The specified module could not be found
End.
Simulation terminated with exit code: 1
Working directory: C:/OMNET/omnetpp561/inet4/examples/inet/nclients
Command line: ../../../../../../Pakhuis/Akademie/MEng/Thesis/Simulasie/WorkSpaces/ThesisSimulations/ThesisSimulations/src/ThesisSimulations.exe -m -n ../../../src;../..;../../../tutorials;../../../showcases --image-path=../../../images -l ../../../src/INET omnetpp.ini
<!> Error: Cannot load library '../../../src//libINET.dll': The specified module could not be found
End.
Simulation terminated with exit code: 1
Working directory: C:/OMNET/omnetpp561/inet4/examples/inet/nclients
Command line: ../../../../../../Pakhuis/Akademie/MEng/Thesis/Simulasie/WorkSpaces/ThesisSimulations/ThesisSimulations/src/ThesisSimulations.exe -m -n ../../../src;../..;../../../tutorials;../../../showcases --image-path=../../../images -l ../../../src/INET omnetpp.ini
Environment variables:
PATH=;C:/OMNET/omnetpp561/inet4/src;C:\OMNET\omnetpp561\omnetpp-5.6.1\bin;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\mingw64\bin;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\bin;;C:/OMNET/omnetpp561/omnetpp-5.6.1/ide/jre/bin/server;C:/OMNET/omnetpp561/omnetpp-5.6.1/ide/jre/bin;C:/OMNET/omnetpp561/omnetpp-5.6.1/ide/jre/lib/amd64;.;C:\OMNET\omnetpp561\omnetpp-5.6.1\bin;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\mingw64\bin;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\local\bin;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\bin;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\bin\site_perl;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\bin\vendor_perl;C:\OMNET\omnetpp561\omnetpp-5.6.1\tools\win64\usr\bin\core_perl;C:\OMNET\omnetpp561\omnetpp-5.6.1;
OMNETPP_ROOT=C:/OMNET/omnetpp561/omnetpp-5.6.1/
OMNETPP_IMAGE_PATH=C:\OMNET\omnetpp561\omnetpp-5.6.1\images
I have tried re installing OMNET++ and using other INET versions. I also tried using OMNET 4.2.2 with no success.
Can someone please advise what I should do?
Kind regards
Benjamin
The TCP_LWIP feature works only on Linux. On Windows, certain functions are clashing with the windows winsock2 library. (That's why the feature is disabled by default)

Errors while Installing Garfield++

Apologies beforehand, I figure this is the kind of thing that probably has been posted about before but I couldn't find anything when I searched.
I'm trying to install Garfield++ and getting some error messages when I try to run the cmake. My system is running Ubuntu 18.04.5 LTS and ROOT version 6.20/02.
Everything seems to go fine until I try make -j N
When that happens I get these errors.
[ 0%] Generating GarfieldDict.cxx, libGarfieldDict_rdict.pcm, libGarfieldDict.rootmap
In file included from input_line_6:3:
In file included from /home/jason/Root/build/include/TObject.h:18:
/home/jason/Root/build/include/TStorage.h:93:4: error: use of undeclared identifier 'R__likely'
ClassDef(TStorage,0) //Storage manager class
^
/home/jason/Root/build/include/Rtypes.h:327:4: note: expanded from macro 'ClassDef'
_ClassDefOutline_(name,id,virtual,) \
^
/home/jason/Root/build/include/Rtypes.h:301:4: note: expanded from macro '_ClassDefOutline_'
_ClassDefBase_(name,id, virtual_keyword, overrd) \
^
/home/jason/Root/build/include/Rtypes.h:276:11: note: expanded from macro '_ClassDefBase_'
if (R__likely(recurseBlocker >= 2)) ...
^
In file included from input_line_6:3:
In file included from /home/jason/Root/build/include/TObject.h:18:
/home/jason/Root/build/include/TStorage.h:93:13: error: 'TStorage' does not refer to a value
ClassDef(TStorage,0) //Storage manager class
^
/home/jason/Root/build/include/TStorage.h:33:7: note: declared here
class TStorage {
^
/home/jason/Root/build/include/TStorage.h:118:1: error: use of undeclared identifier 'R__INTENTIONALLY_UNINIT_BEGIN'
R__INTENTIONALLY_UNINIT_BEGIN
^
/home/jason/Root/build/include/TStorage.h:120:1: error: use of undeclared identifier 'R__INTENTIONALLY_UNINIT_END'
R__INTENTIONALLY_UNINIT_END
^
/home/jason/Root/build/include/TStorage.h:131:1: error: unknown type name 'R__NEVER_INLINE'
R__NEVER_INLINE void TStorage::UpdateIsOnHeap(volatile const UInt_t &uni...
^
/home/jason/Root/build/include/TStorage.h:131:17: error: expected unqualified-id
R__NEVER_INLINE void TStorage::UpdateIsOnHeap(volatile const UInt_t &uni...
^
In file included from input_line_6:3:
/home/jason/Root/build/include/TObject.h:133:4: error: unknown type name 'R__ALWAYS_INLINE'
R__ALWAYS_INLINE Bool_t IsOnHeap() const { return TestBit(kIsOnHeap); }
^
/home/jason/Root/build/include/TObject.h:133:27: error: expected ';' at end of declaration list
R__ALWAYS_INLINE Bool_t IsOnHeap() const { return TestBit(kIsOnHeap); }
^
;
/home/jason/Root/build/include/TObject.h:169:30: error: unknown type name 'Bool_t'
void SetBit(UInt_t f, Bool_t set);
^
/home/jason/Root/build/include/TObject.h:172:4: error: unknown type name 'R__ALWAYS_INLINE'
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const { return (Bool_t) ((f...
^
/home/jason/Root/build/include/TObject.h:172:21: error: duplicate member 'Bool_t'
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const { return (Bool_t) ((f...
^
/home/jason/Root/build/include/TObject.h:133:21: note: previous declaration is here
R__ALWAYS_INLINE Bool_t IsOnHeap() const { return TestBit(kIsOnHeap); }
^
/home/jason/Root/build/include/TObject.h:172:27: error: expected ';' at end of declaration list
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const { return (Bool_t) ((f...
^
;
/home/jason/Root/build/include/TObject.h:210:11: error: unknown type name 'Bool_t'
static Bool_t GetObjectStat();
^
/home/jason/Root/build/include/TObject.h:211:35: error: unknown type name 'Bool_t'
static void SetObjectStat(Bool_t stat);
^
/home/jason/Root/build/include/TObject.h:215:4: error: unknown type name 'Bool_t'
ClassDef(TObject,1) //Basic ROOT object
^
/home/jason/Root/build/include/Rtypes.h:327:4: note: expanded from macro 'ClassDef'
_ClassDefOutline_(name,id,virtual,) \
^
/home/jason/Root/build/include/Rtypes.h:301:4: note: expanded from macro '_ClassDefOutline_'
_ClassDefBase_(name,id, virtual_keyword, overrd) \
^
/home/jason/Root/build/include/Rtypes.h:273:20: note: expanded from macro '_ClassDefBase_'
virtual_keyword Bool_t CheckTObjectHashConsistency() const overr...
^
In file included from input_line_6:3:
/home/jason/Root/build/include/TObject.h:215:4: error: use of undeclared identifier 'R__likely'
/home/jason/Root/build/include/Rtypes.h:327:4: note: expanded from macro 'ClassDef'
_ClassDefOutline_(name,id,virtual,) \
^
/home/jason/Root/build/include/Rtypes.h:301:4: note: expanded from macro '_ClassDefOutline_'
_ClassDefBase_(name,id, virtual_keyword, overrd) \
^
/home/jason/Root/build/include/Rtypes.h:276:11: note: expanded from macro '_ClassDefBase_'
if (R__likely(recurseBlocker >= 2)) ...
^
In file included from input_line_6:3:
/home/jason/Root/build/include/TObject.h:215:13: error: 'TObject' does not refer to a value
ClassDef(TObject,1) //Basic ROOT object
^
/home/jason/Root/build/include/TObject.h:37:7: note: declared here
class TObject {
^
/home/jason/Root/build/include/TObject.h:237:8: error: use of undeclared identifier 'R__unlikely'
if (R__unlikely(fgObjectStat)) TObject::AddToTObjectTable(this);
^
/home/jason/Root/build/include/TObject.h:261:8: error: use of undeclared identifier 'R__unlikely'
if (R__unlikely(fgObjectStat)) TObject::AddToTObjectTable(this);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Error: Error loading the default header files.
CMakeFiles/Garfield.dir/build.make:208: recipe for target 'GarfieldDict.cxx' failed
make[2]: *** [GarfieldDict.cxx] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Garfield.dir/all' failed
make[1]: *** [CMakeFiles/Garfield.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
To be frank, I have only a vague idea what this means. I think it means that the Garfield++ cmake can find my ROOT but for some reason can't read it properly, which I don't know how to fix.
Any help would be appreciated.
I followed the instructions at https://garfieldpp.web.cern.ch/garfieldpp/getting-started/
Phase 1 --
The only deviation from the link was having to tell ccmake where my root directory was. 1st Phase - Checked Prerequisites: A C++ compiler that could support C++11, Root (at least version 6), GSL (GNU Scientific Library), and CMake (at least version 3.3). Only lacked GSL so I went to http://mirrors.ibiblio.org/gnu/ftp/gnu/gsl and, downloaded and installed version 2.6.
Phase 2
mkdir GARFIELD
export GARFIELD_HOME=/home/GARFIELD
git clone http://gitlab.cern.ch/garfield/garfieldpp.git $GARFIELD_HOME
cd $GARFIELD_HOME
mkdir build
cd build
cmake $GARFIELD_HOME
make -j 4
The last step which has the failure. [Though I have noticed that the second to last step, while it runs, does leave a field blank. So here's the results of cmake $GARFIELD_HOME.
-- -----------------------------------------------------------
-- Garfield source files: Source/AvalancheMC.cc;Source/AvalancheMicroscopic.cc;Source/Component.cc;Source/ComponentAnalyticField.cc;Source/ComponentAnsys121.cc;Source/ComponentAnsys123.cc;Source/ComponentCST.cc;Source/ComponentComsol.cc;Source/ComponentConstant.cc;Source/ComponentElmer.cc;Source/ComponentElmer2D.cc;Source/ComponentFieldMap.cc;Source/ComponentGrid.cc;Source/ComponentNeBem2d.cc;Source/ComponentNeBem3d.cc;Source/ComponentNeBem3dMap.cc;Source/ComponentTcad2d.cc;Source/ComponentTcad3d.cc;Source/ComponentUser.cc;Source/ComponentVoxel.cc;Source/DriftLineRKF.cc;Source/GeometryRoot.cc;Source/GeometrySimple.cc;Source/KDTree.cc;Source/Medium.cc;Source/MediumCdTe.cc;Source/MediumGaAs.cc;Source/MediumGas.cc;Source/MediumMagboltz.cc;Source/MediumSilicon.cc;Source/Numerics.cc;Source/OpticalData.cc;Source/PlottingEngineRoot.cc;Source/Polygon.cc;Source/Random.cc;Source/RandomEngineRoot.cc;Source/Sensor.cc;Source/Shaper.cc;Source/Solid.cc;Source/SolidBox.cc;Source/SolidExtrusion.cc;Source/SolidHole.cc;Source/SolidRidge.cc;Source/SolidSphere.cc;Source/SolidTube.cc;Source/SolidWire.cc;Source/TetrahedralTree.cc;Source/Track.cc;Source/TrackBichsel.cc;Source/TrackElectron.cc;Source/TrackHeed.cc;Source/TrackPAI.cc;Source/TrackSimple.cc;Source/TrackSrim.cc;Source/ViewBase.cc;Source/ViewCell.cc;Source/ViewDrift.cc;Source/ViewFEMesh.cc;Source/ViewField.cc;Source/ViewGeometry.cc;Source/ViewIsochrons.cc;Source/ViewMedium.cc;Source/ViewSignal.cc;GarfieldDict.cxx
-- -----------------------------------------------------------
-- Heed source files: Heed/HeedFieldMap.cpp;Heed/heed++/code/BGMesh.cpp;Heed/heed++/code/ElElasticScat.cpp;Heed/heed++/code/EnTransfCS.cpp;Heed/heed++/code/EnTransfCS_BGM.cpp;Heed/heed++/code/EnergyMesh.cpp;Heed/heed++/code/HeedCluster.cpp;Heed/heed++/code/HeedCondElectron.cpp;Heed/heed++/code/HeedDeltaElectron.cpp;Heed/heed++/code/HeedDeltaElectronCS.cpp;Heed/heed++/code/HeedMatterDef.cpp;Heed/heed++/code/HeedParticle.cpp;Heed/heed++/code/HeedParticle_BGM.cpp;Heed/heed++/code/HeedPhoton.cpp;Heed/heed++/code/PairProd.cpp;Heed/heed++/code/PhotoAbsCS.cpp;Heed/heed++/code/PhotoAbsCSLib.cpp;;Heed/wcpplib/geometry/box.cpp;Heed/wcpplib/geometry/circumf.cpp;Heed/wcpplib/geometry/gparticle.cpp;Heed/wcpplib/geometry/mparticle.cpp;Heed/wcpplib/geometry/plane.cpp;Heed/wcpplib/geometry/polyline.cpp;Heed/wcpplib/geometry/straight.cpp;Heed/wcpplib/geometry/surface.cpp;Heed/wcpplib/geometry/trajestep.cpp;Heed/wcpplib/geometry/vec.cpp;Heed/wcpplib/geometry/volume.cpp;Heed/wcpplib/ioniz/bethe_bloch.cpp;Heed/wcpplib/ioniz/e_cont_enloss.cpp;Heed/wcpplib/math/DoubleAc.cpp;Heed/wcpplib/math/PolLeg.cpp;Heed/wcpplib/math/cubic.cpp;Heed/wcpplib/math/kinem.cpp;Heed/wcpplib/math/linexi2.cpp;Heed/wcpplib/math/lorgamma.cpp;Heed/wcpplib/math/parabola.cpp;Heed/wcpplib/matrix/inverse.cpp;Heed/wcpplib/matrix/multiply.cpp;Heed/wcpplib/matter/AtomDef.cpp;Heed/wcpplib/matter/GasDef.cpp;Heed/wcpplib/matter/GasLib.cpp;Heed/wcpplib/matter/MatterDef.cpp;Heed/wcpplib/matter/MoleculeDef.cpp;Heed/wcpplib/particle/eparticle.cpp;Heed/wcpplib/particle/particle_def.cpp;Heed/wcpplib/random/PointsRan.cpp;Heed/wcpplib/random/chisran.cpp;Heed/wcpplib/random/pois.cpp;Heed/wcpplib/random/rnorm.cpp;Heed/wcpplib/safetl/AbsArr.cpp;Heed/wcpplib/safetl/AbsPtr.cpp;Heed/wcpplib/stream/definp.cpp;Heed/wcpplib/stream/findmark.cpp;Heed/wcpplib/stream/prstream.cpp;Heed/wcpplib/util/FunNameStack.cpp
-- -----------------------------------------------------------
-- Magboltz source files: Source/magboltz-11.9.f
-- -----------------------------------------------------------
-- neBEM source files: NeBem/ComputeProperties.c;NeBem/GarfieldppInterface.cpp;NeBem/Isles.c;NeBem/ReTriM.c;NeBem/Vector.c;NeBem/luc.c;NeBem/neBEM.c;NeBem/neBEMInterface.c;NeBem/nrutil.c;NeBem/svdcmp.c
-- -----------------------------------------------------------
-- Directory used to find ROOT dict files:
-- -----------------------------------------------------------
-- Garfield++ examples will be built. In order disable this option use -DWITH_EXAMPLES=OFF
-- Install path: /usr/local
-- If you want to change this path call cmake -DCMAKE_INSTALL_PREFIX=my_install_path ...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jason/GARFIELD/build
Notice the Root directory line is blank. How do I fix that?
Edit:2-
Measured success. Switched the location where ROOT is read from to where it was installed instead of where it was built and I got a new error message.
[ 0%] Generating GarfieldDict.cxx, libGarfieldDict_rdict.pcm, libGarfieldDict.rootmap
No such file or directory
CMakeFiles/Garfield.dir/build.make:208: recipe for target 'GarfieldDict.cxx' failed
make[2]: *** [GarfieldDict.cxx] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Garfield.dir/all' failed
make[1]: *** [CMakeFiles/Garfield.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
Still emotionally processing the full implications.

Error while compiling lex and yacc in mac os

I'm working on a lex and yacc program, on my devise MAC OS..
when I try to do the following:
gcc sample.tab.c lex.yy.c -ly -ll
it shows me a lot of errors and at the end ..
fatal error: too many errors emitted, stopping now [-ferror-limit=]
some of the error appears :
./sample.tab.h:44:6: error: expected identifier
if = 260,
^
./sample.tab.h:46:6: error: expected identifier
else = 262,
^
./sample.tab.h:48:6: error: expected identifier
while = 264,
^
./sample.tab.h:53:6: error: expected identifier
return = 269,
Could anyone help me with that??
Thank you..
You cannot use C keywords as names for non-terminals. That is why it is usual to use ALL-CAPS as non-terminal names. So you flex file might include
while { return WHILE; }
return { return RETURN; }
and if you are bison you can declare aliases:
%token WHILE "while"
%token RETURN "return"
Allowing you to write rules like:
whileStatement: "while" '(' expression ')' statement

Error with new gcc48 on macos

I'm having serious problems running some standard commands such as sleep() with g++-mp-4.8 downloaded from macports. I don't have any of these problems compiling with llvm-g++-4.2.
This is quite annoying, because I'm trying to use C++11 features in this program.
Here is the read out from the compiler - I'm really sorry it's so long, I just have no idea what to do with it:
17:11:54 **** Incremental Build of configuration Debug for project BSDESimV2 ****
make all
Building file: ../TrueSolutions/TrueSoln.cpp
Invoking: GCC C++ Compiler
/opt/local/bin/g++ -g -O0 -Wall -I/opt/local/include -I/usr/include -I/usr/llvm-gcc-4.2 /lib/gcc/i686-apple-darwin11/4.2.1/include -I/Applications/Xcode.app/Contents/Developer/usr/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include -I/usr/include/c++/4.2.1 -I/usr/include/c++/4.2.1/backup -I/opt/local/bin -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"TrueSolutions/TrueSoln.d" -MT"TrueSolutions/TrueSoln.d" -o "TrueSolutions/TrueSoln.o" "../TrueSolutions/TrueSoln.cpp"
In file included from /usr/include/c++/4.2.1/bits/stl_algobase.h:72:0,
from /usr/include/c++/4.2.1/bits/char_traits.h:46,
from /usr/include/c++/4.2.1/ios:45,
from /usr/include/c++/4.2.1/istream:44,
from /usr/include/c++/4.2.1/fstream:45,
from ../TrueSolutions/TrueSoln.h:15,
from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:381:12: error: expected identifier before '__is_pod'
struct __is_pod
^
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:381:12: error: expected unqualified-id before '__is_pod'
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:394:12: error: expected identifier before '__is_empty'
struct __is_empty
^
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:394:12: error: expected unqualified-id before '__is_empty'
In file included from /usr/include/c++/4.2.1/memory:54:0,
from /usr/include/c++/4.2.1/string:48,
from /usr/include/c++/4.2.1/bits/locale_classes.h:47,
from /usr/include/c++/4.2.1/bits/ios_base.h:47,
from /usr/include/c++/4.2.1/ios:48,
from /usr/include/c++/4.2.1/istream:44,
from /usr/include/c++/4.2.1/fstream:45,
from ../TrueSolutions/TrueSoln.h:15,
from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/allocator.h:135:41: error: expected unqualified-id before '__is_empty'
template<typename _Alloc, bool = std::__is_empty<_Alloc>::__value>
^
/usr/include/c++/4.2.1/bits/allocator.h:135:41: error: expected '>' before '__is_empty'
In file included from /usr/include/c++/4.2.1/vector:70:0,
from ../TrueSolutions/TrueSoln.h:23,
from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/stl_vector.h: In member function 'void std::vector<_Tp, _Alloc>::swap(std::vector<_Tp, _Alloc>&)':
/usr/include/c++/4.2.1/bits/stl_vector.h:740:34: error: template argument 2 is invalid
std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
^
/usr/include/c++/4.2.1/bits/stl_vector.h:740:45: error: invalid type in declaration before '(' token
std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
^
/usr/include/c++/4.2.1/bits/stl_vector.h:741:36: error: expression list treated as compound expression in initializer [-fpermissive]
__x._M_get_Tp_allocator());
^
In file included from /usr/include/c++/4.2.1/vector:71:0,
from ../TrueSolutions/TrueSoln.h:23,
from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/stl_bvector.h: In member function 'void std::vector<bool, _Alloc>::swap(std::vector<bool, _Alloc>&)':
/usr/include/c++/4.2.1/bits/stl_bvector.h:690:56: error: template argument 2 is invalid
std::__alloc_swap<typename _Base::_Bit_alloc_type>::
^
/usr/include/c++/4.2.1/bits/stl_bvector.h:691:10: error: invalid type in declaration before '(' token
_S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator());
^
/usr/include/c++/4.2.1/bits/stl_bvector.h:691:61: error: expression list treated as compound expression in initializer [-fpermissive]
_S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator());
^
make: *** [TrueSolutions/TrueSoln.o] Error 1
As suggested in the hints, I got rid of all the outdated -I/'s and set up the clang++ compiler as in Eclipse, Macos 10.8 and C++11
There were some clashes with between my code and the stl, but they were easy to hunt down from the console output.

Resources