Skip to content

Remove StreamBase templating

First attempt at trying to remove the templating in shared StreamBase methods. This approach casts directly to StreamBase via an internal field.

Unfortunately, I keep hitting linker errors when trying to run make -j8, and would appreciate any help in figuring out where they're coming from:

duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(js_stream.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(js_stream.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(js_stream.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(js_stream.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_file.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_file.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_file.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_file.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_llhttp.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_llhttp.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_llhttp.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_llhttp.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_traditional.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_traditional.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_traditional.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http_parser_traditional.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http2.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http2.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http2.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(node_http2.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(pipe_wrap.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(pipe_wrap.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(pipe_wrap.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(pipe_wrap.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(process_wrap.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(process_wrap.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(process_wrap.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(process_wrap.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_base.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_base.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_base.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_base.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_pipe.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_pipe.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_pipe.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_pipe.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_wrap.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_wrap.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_wrap.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(stream_wrap.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tcp_wrap.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tcp_wrap.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tcp_wrap.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tcp_wrap.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tty_wrap.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tty_wrap.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tty_wrap.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tty_wrap.o)
duplicate symbol __ZN4node10StreamBase15GetBytesWrittenERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tls_wrap.o)
duplicate symbol __ZN4node10StreamBase11GetExternalERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tls_wrap.o)
duplicate symbol __ZN4node10StreamBase12GetBytesReadERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tls_wrap.o)
duplicate symbol __ZN4node10StreamBase5GetFDERKN2v820FunctionCallbackInfoINS1_5ValueEEE in:
    /Users/jon/code/nodejs/node/out/Release/libnode.a(connection_wrap.o)
    /Users/jon/code/nodejs/node/out/Release/libnode.a(tls_wrap.o)
ld: 52 duplicate symbols for architecture x86_64
Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines

Merge request reports

Loading