Somebody posted a way to do it with transparency maps (although that doesn't really do a hole, just something that looks like one).

The present version of terranim8or can do booleans and for clean shapes like a cube and a cylindrical hole it will probably give good results.

For not so simple shapes there is still the "manual method. Built the two shapes you need (here a cylinder and a cube; you have to build meshes out of primitives first), join sloids and then with the slide tool move points to create the merging line. remove unwanted faces, recreate the ones yu need and then you have it.

Make cube. Remove faces where the cyl will go through. Group the cube with itself and this will stop you moving points.accidently.

Mek cylinder the correct lenght and width.Remove end faces of cyl.Select all edges at one end of the cyl. Extrude edges sideways at 90 dgegrres to cyl. In top view make the extruded points a square shape the same size as the cube face. Do same with bottom of cyl.

Move cyl to correct position. Make cuts in the edges of the removed faces on the cube (after ungrouping cube). Aim is to line up the vertices on the cyl's new square face with your new cuts on the cube.