Hello, i am new in Nim.

I am testing this example and want compile with useNimRtl for use dynlib in the 
future.

The example code is 
    
    
    import asyncnet, asyncdispatch, net, osproc, os
    
    var server: AsyncSocket
    let port = 9090
    let publicKey = "publicKey.pem"
    let secretKey = "secretKey.pem"
    
    proc handle(client: AsyncSocket) {.async.} =
      while true:
        var line: string = ""
        try:
          line = await client.recvLine()
        except:
          echo "socket breaks in read:", getCurrentExceptionMsg()
          break
        if line == "":
          echo "client disconnected"
          if not client.isClosed:
            client.close()
          break
        try:
          await client.send("GOT: " & line & "\n")
        except:
          echo "socket breaks in send:", getCurrentExceptionMsg()
          break
    
    proc createKeyFiles() =
      ## creates neccessary certificates for ssl socket.
      echo "[+] going to create ssl certificates"
      let res = execCmd "openssl req -x509 -nodes -days 365 -newkey rsa:1024 
-keyout " & secretKey & " -out " & publicKey
      if res != 0:
        echo "[-] could not create keyfiles"
        quit()
      echo "[+] keys created"
    
    proc main() {.async.} =
      if not (fileExists(publicKey) or fileExists(secretKey)): createKeyFiles()
      server = newAsyncSocket()
      server.setSockOpt(OptReuseAddr, true)
      server.setSockOpt(OptReusePort, true)
      server.bindAddr(Port port)
      server.listen()
      var ctx = newContext(certFile = publicKey, keyFile = secretKey)
      wrapSocket(ctx, server)
      echo "listening on port ", port
      while true:
        var (address, client) = await server.acceptAddr()
        echo "connection from: ", address
        wrapConnectedSocket(ctx, client, handshakeAsServer)
        asyncCheck client.handle
    
    waitFor main()
    
    
    Run

Extracted from 
[https://github.com/enthus1ast/nimSslExample/blob/master/nimasyncsslserver.nim](https://forum.nim-lang.org/postActivity.xml#https-github-com-enthus1ast-nimsslexample-blob-master-nimasyncsslserver-nim)

My dev environment is linux mint 19.1 amd64. I test compile with stable Nim 
0.20.0 and devel.
    
    
    >nim c -o:libnimrtl.so ../.choosenim/toolchains/nim-#devel/lib/nimrtl.nim
    
    
    
    Run

Compilation done.
    
    
    >nim c -d:ssl -d:useNimRtl -d:nmDebugDlOpen app.nim
    Hint: used config file 
'/home/t/.choosenim/toolchains/nim-#devel/config/nim.cfg' [Conf]
    Hint: used config file 
'/home/t/.choosenim/toolchains/nim-#devel/config/config.nims' [Conf]
    Hint: system [Processing]
    Hint: widestrs [Processing]
    Hint: io [Processing]
    Hint: app [Processing]
    Hint: asyncnet [Processing]
    Hint: asyncdispatch [Processing]
    Hint: os [Processing]
    Hint: strutils [Processing]
    Hint: parseutils [Processing]
    Hint: math [Processing]
    Hint: bitops [Processing]
    Hint: macros [Processing]
    Hint: algorithm [Processing]
    Hint: unicode [Processing]
    Hint: pathnorm [Processing]
    Hint: osseps [Processing]
    Hint: posix [Processing]
    Hint: times [Processing]
    Hint: options [Processing]
    Hint: typetraits [Processing]
    Hint: tables [Processing]
    Hint: hashes [Processing]
    Hint: heapqueue [Processing]
    Hint: lists [Processing]
    Hint: asyncstreams [Processing]
    Hint: asyncfutures [Processing]
    Hint: deques [Processing]
    Hint: cstrutils [Processing]
    Hint: monotimes [Processing]
    Hint: nativesockets [Processing]
    Hint: net [Processing]
    Hint: sets [Processing]
    Hint: openssl [Processing]
    Hint: dynlib [Processing]
    Hint: selectors [Processing]
    Hint: epoll [Processing]
    Hint: osproc [Processing]
    Hint: strtabs [Processing]
    Hint: streams [Processing]
    Hint: cpuinfo [Processing]
    Hint: linux [Processing]
    CC: stdlib_assertions.nim
    CC: stdlib_dollars.nim
    CC: stdlib_io.nim
    CC: stdlib_system.nim
    CC: stdlib_strutils.nim
    CC: stdlib_options.nim
    CC: stdlib_times.nim
    CC: stdlib_os.nim
    CC: stdlib_heapqueue.nim
    CC: stdlib_deques.nim
    CC: stdlib_cstrutils.nim
    CC: stdlib_asyncfutures.nim
    CC: stdlib_monotimes.nim
    CC: stdlib_nativesockets.nim
    CC: stdlib_sets.nim
    CC: stdlib_dynlib.nim
    CC: stdlib_openssl.nim
    CC: stdlib_net.nim
    CC: stdlib_selectors.nim
    CC: stdlib_asyncdispatch.nim
    CC: stdlib_asyncnet.nim
    CC: stdlib_osproc.nim
    CC: app.nim
    Hint:  [Link]
    Hint: operation successful (72913 lines compiled; 2.177 sec total; 
90.285MiB peakmem; Debug Build) [SuccessX]
    >
    
    
    Run

Compilation done.

When execute the application get:
    
    
    > LD_LIBRARY_PATH=./ ./app
     could not import: csuCmpIgnoreStyle
    >
    
    
    Run

If compile without -d:useNimRtl work well.
    
    
    >nim c -d:ssl  -d:nmDebugDlOpen app.nim
    Hint: used config file 
'/home/t/.choosenim/toolchains/nim-#devel/config/nim.cfg' [Conf]
    Hint: used config file 
'/home/t/.choosenim/toolchains/nim-#devel/config/config.nims' [Conf]
    Hint: system [Processing]
    Hint: widestrs [Processing]
    Hint: io [Processing]
    Hint: app [Processing]
    Hint: asyncnet [Processing]
    Hint: asyncdispatch [Processing]
    Hint: os [Processing]
    Hint: strutils [Processing]
    Hint: parseutils [Processing]
    Hint: math [Processing]
    Hint: bitops [Processing]
    Hint: macros [Processing]
    Hint: algorithm [Processing]
    Hint: unicode [Processing]
    Hint: pathnorm [Processing]
    Hint: osseps [Processing]
    Hint: posix [Processing]
    Hint: times [Processing]
    Hint: options [Processing]
    Hint: typetraits [Processing]
    Hint: tables [Processing]
    Hint: hashes [Processing]
    Hint: heapqueue [Processing]
    Hint: lists [Processing]
    Hint: asyncstreams [Processing]
    Hint: asyncfutures [Processing]
    Hint: deques [Processing]
    Hint: cstrutils [Processing]
    Hint: monotimes [Processing]
    Hint: nativesockets [Processing]
    Hint: net [Processing]
    Hint: sets [Processing]
    Hint: openssl [Processing]
    Hint: dynlib [Processing]
    Hint: selectors [Processing]
    Hint: epoll [Processing]
    Hint: osproc [Processing]
    Hint: strtabs [Processing]
    Hint: streams [Processing]
    Hint: cpuinfo [Processing]
    Hint: linux [Processing]
    CC: app.nim
    Hint:  [Link]
    Hint: operation successful (72913 lines compiled; 1.444 sec total; 
90.527MiB peakmem; Debug Build) [SuccessX]
    
    >LD_LIBRARY_PATH=./ ./app
    listening on port 9090
    
    
    
    Run

I have not idea how to debug this issue. Thank you in advance. 

Reply via email to