Add 'extern C' if simulator is written in C++

Message ID CADip9gb6jrepCr=uN3iu4MKF93BwF=KLzr6M340arn9A9Fa3_w@mail.gmail.com
State New, archived
Headers

Commit Message

Павел Крюков Dec. 31, 2018, 11:53 a.m. UTC
  Add 'extern C' if simulator is written in C++

sim/common/Changelog:
2018-12-31  Pavel I. Kryukov  <kryukov@frtk.ru>

        * sim-base.h: Add 'extern C' if header is compiled with C++

 /* typedef <target-dependant> sim_cia; */
@@ -224,4 +228,8 @@ typedef struct {
 SIM_DESC sim_state_alloc (SIM_OPEN_KIND kind, host_callback *callback);
 void sim_state_free (SIM_DESC);

+#ifdef __cplusplus
+}
+#endif
+
 #endif /* SIM_BASE_H */
  

Comments

Simon Marchi Jan. 3, 2019, 3:31 a.m. UTC | #1
On 2018-12-31 06:53, Павел Крюков wrote:
> Add 'extern C' if simulator is written in C++

That looks good to me, but can you just precise what's your use case so 
I understand better?  I suppose you have a sim port in a private fork of 
binutils-gdb?

Simon
  
Павел Крюков Jan. 3, 2019, 5:39 a.m. UTC | #2
Yes, we're integrating GDB into our cycle-accurate simulator:
https://github.com/MIPT-ILab/mipt-sim-gdb

чт, 3 янв. 2019 г. в 06:31, Simon Marchi <simon.marchi@polymtl.ca>:

> On 2018-12-31 06:53, Павел Крюков wrote:
> > Add 'extern C' if simulator is written in C++
>
> That looks good to me, but can you just precise what's your use case so
> I understand better?  I suppose you have a sim port in a private fork of
> binutils-gdb?
>
> Simon
>
  
Simon Marchi Jan. 3, 2019, 2:46 p.m. UTC | #3
On 2019-01-03 00:39, Павел Крюков wrote:
> Yes, we're integrating GDB into our cycle-accurate simulator:
> https://github.com/MIPT-ILab/mipt-sim-gdb

Ok, thanks.  Well it seems reasonable to me, and doesn't hurt in-tree 
simulators to have that, so I've merged it.

Simon
  

Patch

diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h
index 524195e8ad..e5f295458d 100644
--- a/sim/common/sim-base.h
+++ b/sim/common/sim-base.h
@@ -55,6 +55,10 @@  along with this program.  If not, see <
http://www.gnu.org/licenses/>.  */
 #ifndef SIM_BASE_H
 #define SIM_BASE_H

+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Pre-declare certain types. */